2014-02-05 88 views
1

我想創建一個自定義的方法,我在我的questions_controller.rb文件中定義,像這樣:如何在rails 4上調用ruby的自定義方法?

def self.ping 
    @question = Question.first 
    @question.update(:amplify => @question.amplify + 1) 
end 

現在的問題是我如何調用該方法?我需要先定義一條路線嗎?我如何從控制檯中引用它?

在此先感謝。

+0

你能解釋一下你想用'平做什麼'方法? –

+0

每當'ping'方法被調用時,我想引用第一個'Question'並且通過+1更新它的屬性。因此':amplify'在開始處爲1,然後每次調用方法時,':amplify'增加1。 – user3048402

回答

4

我建議將它移動到你的模型:

question.rb

def self.ping 
    question = Question.first 
    question.update(:amplify => question.amplify + 1) 
end 

和定義自定義路線,的routes.rb

post '/ping' => 'questions#ping', as: 'ping' 

questions_controller .rb

def ping 
    Question.ping 
end 

那麼你可以從控制檯引用它:

Question.ping 
0

而不是

question.update(:amplify => question.amplify + 1) 

您可以使用

question.increment!(:amplify) 
相關問題