2

当允许控制器方法作为视图中的助手时,如何传递参数?

在我的 example_controller.rb 我有

class ExampleController < ApplicationController
  helper_method :group_exists?

  private
  def group_exists?(gid):
    .. code to check if group exists
  end
end

在视图中(我使用 slim),我想传递一个参数

- if group_exists?(group.gid)
  | Exists
- else
  | Does not exist

但是它会抛出一个错误说

wrong number of arguments (2 for 0..1)
4

2 回答 2

2

伙计,如果你真的想要一个辅助方法,已经为它定义了一个地方。ExampleHelper只需在已经为您创建的类中编写相同的方法即可。

这样做的原因是,如果你想调试助手,你会很容易知道在哪里看。在您的用例特别需要它之前,不要在控制器中创建助手。

于 2013-08-07T13:09:56.123 回答
1

我在使用 before_filter 时使用块。它在 helper_method 中也可能有用,但我不确定。试试这个,请告诉我,它是否有效,如果没有,我们都会寻找其他选择:

helper_method {|x|  x.group_exists?(gid) }

希望它会有所帮助。谢谢

于 2013-08-07T12:11:22.760 回答