【问题标题】:Ruby on Rails - using helpers in html.erbRuby on Rails - 在 html.erb 中使用帮助程序
【发布时间】:2013-05-22 17:54:29
【问题描述】:

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

def sample_helper(count)
    #implementaton...
end

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

    <%= sample_helper(user.id) %>

如果我尝试运行该网页,它会抛出一个错误,提示该方法未定义。 提前致谢!

【问题讨论】:

标签: ruby-on-rails ruby erb helper


【解决方案1】:

你没有完全正确的命名约定。

将您的帮助文件命名为 app/helpers/foo_helper.rb,您应该在其中包含以下内容:

module FooHelper
  def sample_helper(count)
    "#{count} items" # or whatever
  end
end

现在,从FooController 呈现的任何视图中,您应该能够使用sample_helper 方法。


另外,你应该知道,如果你使用 rails 生成器,这个结构是为你设置的。您需要做的就是将方法添加到生成的文件中。这样您就无需猜测命名约定。

例如,此命令将创建一个控制器文件、控制器测试文件、一个帮助文件和一个索引视图文件,所有这些都可供您自定义。

rails g controller foo index

【讨论】:

    【解决方案2】:

    你的助手是否应该在一个名为 app/helpers/foo_helper.rb 的文件中,其中包含一个与助手同名的模块(骆驼化)像:

    module FooHelper 
      def sample_helper(cont)
        # implementation
      end
    end
    

    这就是 Rail 自动加载助手的方式。

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 2014-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多