ActiveAdmin与has_many - belongs_to关系形成?

age*_*eto 19 ruby-on-rails ruby-on-rails-3.1 activeadmin

我有模型Home和Photo,它们有一个has_many - belongs_to关系(多态关系,但我不认为在这种情况下很重要).我现在正在设置主动管理员,我希望管理员能够从家庭表单添加照片到家庭.

照片由CarrierWave宝石管理,我不知道是否会使问题更容易或更难.

如何在Active Admin Home表单中包含不同模型的表单字段?有这样的经历吗?

class Home < ActiveRecord::Base
  validates :name, :presence => true,
                     :length => { :maximum => 100 }
  validates :description, :presence => true      
  has_many :photos, :as => :photographable

end


class Photo < ActiveRecord::Base
    belongs_to :photographable, :polymorphic => true
    mount_uploader :image, ImageUploader
end
Run Code Online (Sandbox Code Playgroud)

jfe*_*ick 58

在app/admin/home.rb中尝试这样的事情:

form do |f|
  f.inputs "Details" do
    f.name
  end

  f.has_many :photos do |photo|
    photo.inputs "Photos" do
      photo.input :field_name 
      #repeat as necessary for all fields
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

确保在您的家庭模型中有这个:

accepts_nested_attributes_for :photos
Run Code Online (Sandbox Code Playgroud)

我从另一个堆栈溢出问题修改了这个问题:如何在使用has_many通过关联的模型上使用ActiveAdmin?

  • 我也得到未定义的方法'new_record?' 为nil:NilClass错误.你是怎么解决它@agente_secreto的? (4认同)
  • 谢谢男人,但是当我使用f.has_many时,我得到一个错误:未定义的方法“ new_record?” 对于nil:NilClass (2认同)
  • 您需要在父模型中添加accepts_nested_attributes_for:children-这就是解决方法 (2认同)
  • 我不得不做`f.input:name`而不是`f.name`。 (2认同)