我正在玩一些旧项目,试图在控制器中使用模块。
我在控制器中有一个before_action过滤器,它通过一个参数。
include CrudConcern
before_action lambda { index(Test.all) }, only: :index
并在模块中
def index(model)
var_name = "@#{model.name.downcase.pluralize}"
self.instance_variable_set(var_name, model)
end
但是我遇到了这个错误...不确定原因。
wrong number of arguments (0 for 1)
我传递了预期数量的参数,因此不确定为什么会发生此错误。
答案 0 :(得分:1)
尝试将方法名称从索引更改为其他名称。如果您的控制器中有索引操作,它可能会尝试调用该操作而不是模块中的索引方法。