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

My BusinessAttribute Model:

belongs_to :business

ActiveAdmin:

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

我正在使用activeadmin '1.0.0。Pre1 '与rails 4.2.0我的生产堆栈是nginx和独角兽,如果有帮助的话。欢迎任何评论和回复。谢谢。

希望您可以使用推荐的稳定版本的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来嵌套属性。

希望对别人有所帮助。

最新更新