我可能错过了一些东西。 比如说我在app / helpers / foo_controller.rb中有一个辅助函数,代码如下:
def sample_helper(count)
#implementaton...
end
我想在rails生成的网页中使用这个帮助器,代码如下:
<%= sample_helper(user.id) %>
如果我尝试运行网页,它会向我抛出错误,说明该方法未定义。 提前谢谢!
答案 0 :(得分:3)
你没有正确的命名惯例。
为帮助文件app/helpers/foo_helper.rb
命名,其中应该包含:
module FooHelper
def sample_helper(count)
"#{count} items" # or whatever
end
end
现在,在FooController
呈现的任何视图中,您都应该可以使用sample_helper
方法。
此外,您应该知道,如果您使用导轨生成器,则会为您设置此结构。您需要做的就是为生成的文件添加方法。这样你就不需要猜测命名约定了。
例如,此命令将生成控制器文件,控制器测试文件,帮助文件和索引视图文件,所有这些都可供您自定义。
rails g controller foo index
答案 1 :(得分:0)
您的助手是否应该位于名为app / helpers / foo_helper.rb 的文件中,该文件包含与助手(camelized)同名的模块,如:
module FooHelper
def sample_helper(cont)
# implementation
end
end
这是Rail自动加载助手的方式。