在batch_action中使用lambda时出错(Active Admin,Rails 5)

时间:2018-01-09 22:01:13

标签: ruby-on-rails ruby activeadmin ruby-on-rails-5

当我想在Active Admin中的batch_action中使用lambda时出现问题。此错误仅在我使用lambda时出现,因为当我使用块时,错误消失但列表未更新。这是我的代码

batch_action :set_cohorts, form: -> {{cohort: Cohort.order(:name).pluck(:name, :id)}} do |ids, inputs|
  cohort = Cohort.find(inputs[:cohort])        
end

form do |f|
  inputs 'Sección' do
    f.semantic_errors
    input :cohort, as: :select, collection: -> {Cohort.order(:name).pluck(:name, :id)}
    input :name
    input :position
    input :active, as: :radio
  end
  f.actions
end

错误是

wrong number of arguments (given 1, expected 0)
  • 我正在使用
    • Rails 5.1.4
    • Ruby 2.4.3
    • Active Admin 2.0.0.alpha

欢迎任何建议。 TNKS !!

2 个答案:

答案 0 :(得分:0)

要专门回答你的问题,这是一个没有太多更新的旧库,我希望不支持lambda,尽管proc{...}应该没问题。至于列表未更新的原因我不清楚你的意图,通常batch_action块以redirect_to结尾,例如。

redirect_to({action: :index}, {notice: 'Cohorts selected.'})

答案 1 :(得分:0)

我在Rails4.4.2中解决了该错误

wrong number of arguments (given 1, expected 0)

具有以下明显的解决方法

form_lambda = lambda do |id = nil|
  # ...
end