現在、rbファイルにこのコードがあります。それはうまく動作します:
project = PivotalTracker::Project.find(123456)
get '/' do
@accepted = project.stories.all(:current_state => 'accepted').length
@delivered = project.stories.all(:current_state => 'delivered').length
@finished = project.stories.all(:current_state => 'finished').length
erb :home
end
totalStories
冗長なコードを含む 3 行の長い行の代わりに使用する関数を作成したかったのです。
だから、私は次のことを試しました:
get '/' do
@accepted = totalStories('accepted')
@delivered = totalStories('delivered')
@finished = totalStories('finished')
def totalStories(storyState)
var estimate = project.stories.all(:current_state => storyState).length
return var
end
erb :home
end
このコードでは、エラーが発生します。
NoMethodError at /
undefined method `totalStories' for #<Sinatra::Application:0x007f89bae6c800>
このエラーを解決するためのヒントはありますか? ありがとう!
更新:get
メソッドをブロック
の外に移動しましたが、新しいエラーが発生しています: undefined local variable or method
project'`
project
変数はメソッドの外と上で定義されます。
project
この変数を他の get ブロックで使用していることにも注目してください。