现在,我的 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
在其他 get 块中使用了该变量。