ActiveAdmin New 和 Edit With has_many 关系

ActiveAdmin New and Edit With has_many relation

在开发中一切正常,但在生产中它在新的和编辑操作中中断。这是生产日志:

.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/bundler/gems/activeadmin-5a2b7b5bc683/app/views/active_admin/resource/new.html.arb (191.9ms)
I, [2015-07-31T10:51:31.326590 #26202]  INFO -- : Completed 500 Internal Server Error in 254ms
F, [2015-07-31T10:51:31.329305 #26202] FATAL -- : 
ActionView::Template::Error (too many arguments for format string):
    1: insert_tag renderer_for(:new)
  app/admin/business.rb:51:in `block (3 levels) in <top (required)>'
  app/admin/business.rb:36:in `block (2 levels) in <top (required)>'

我的商业模式:

has_many :business_attributes, dependent: :destroy
accepts_nested_attributes_for :business_attributes, allow_destroy: true, reject_if: :all_blank

我的 BusinessAttribute 模型:

belongs_to :business

活动管理员:

ActiveAdmin.register Business do
 form(allow_destroy: true, html: { multipart: true }) do |f|
  ...other_fields..
  f.has_many :business_attributes do |attribute|
    attribute.input :name
    attribute.input :value
  end
 f.actions
 end
 permit_params :param, :param, ....
end

我在 rails 4.2.0 中使用 activeadmin '1.0.0.pre1' 如果有帮助的话,我的生产堆栈是 nginx 和 unicorn。欢迎任何评论和回复。谢谢。

希望大家能按照推荐使用稳定版的activeadmin

你可以试试这个

form :html => { :enctype => "multipart/form-data" } do |f|

也放

f.has_many :business_attributes do |attribute|
   attribute.input :_destroy, :as => boolean
   attribute.input :name
   attribute.input :value

因为你的模型已经有了

accepts_nested_attributes_for :business_attributes, allow_destroy: true

虽然我无法解决 activeadmin 问题。但我找到了解决问题的方法(它无法从关系构建表单)。

form partial: 'form'

部分呈现表单解决了这个问题。我将 coocon gem 用于嵌套属性。

希望对大家有帮助。