2014-10-18 69 views
0

我正在玩弄一些旧的项目,试图在控制器中使用模块。过滤lambda错误的轨道参数

我在控制器中有一个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 

。然而我encounytering这个错误...不知道为什么。

wrong number of arguments (0 for 1) 

我传递了所需的参数数目,所以不知道为什么会发生此错误。

回答

1

尝试将方法名称从索引更改为其他内容。如果你的控制器中有一个索引操作,它可能会试图调用它来代替模块中的索引方法。