未定义的方法我都下app/controllers
进口模块
require_relative '../../lib/bases_helper'
class BasesController < ApplicationController
include BasesHelper
def index
BasesHelper.available_bases
end
end
我试图用另一个模块中定义的方法的控制器lib
下:
module BasesHelper
def available_bases
@bases = Base.all
end
end
当我运行我的应用程序和访问我得到一个错误
undefined method `available_bases' for BasesHelper:Module
我可以导航到方法与我的IDE通过点击它的名字。为什么它不解决方法?我错过了什么?
哇,这真的是大会吗?我用(用Java)把东西从控制器中拿出来,这正是我想要做的。这看起来非常复杂。很高兴知道,非常感谢! – garci560
@nprensen是的,帮手更常用于观点,尽管按你的方式做也不错; Rails实际上喜欢_thin_控制器。事实上,我也使用这种方法来处理应用程序范围的方法,例如会话(并在应用程序控制器中包含助手)。对于你的具体例子,由于'available_bases'方法只能被你的'bases_controlller'使用,所以把它放在控制器中是有意义的,大多数开发者都会这样想。 – Gerry