Ruby on Rails - 在html.erb中使用帮助程序

时间:2013-05-27 21:08:50

标签: ruby-on-rails ruby erb helper

我可能错过了一些东西。 比如说我在app / helpers / foo_controller.rb中有一个辅助函数,代码如下:

def sample_helper(count)
    #implementaton...
end

我想在rails生成的网页中使用这个帮助器,代码如下:

    <%= sample_helper(user.id) %>

如果我尝试运行网页,它会向我抛出错误,说明该方法未定义。 提前谢谢!

2 个答案:

答案 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自动加载助手的方式。