Ruby on rails 表单中的嵌套属性未保存

Ruby on rails 表单中的嵌套属性未保存,ruby-on-rails,Ruby On Rails,我的型号: class Group < ActiveRecord::Base has_many :images, :dependent => :destroy accepts_nested_attributes_for :images, :reject_if => lambda { |a| a[:pic].blank? }, :allow_destroy => true end class Image < ActiveRecord::Base

我的型号:

class Group < ActiveRecord::Base
    has_many :images, :dependent => :destroy

    accepts_nested_attributes_for :images, :reject_if => lambda { |a| a[:pic].blank? }, :allow_destroy => true
end

class Image < ActiveRecord::Base
  belongs_to :group
  has_many :votes, :dependent => :destroy

  has_attached_file :pic, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
  validates_attachment_content_type :pic, content_type: /\Aimage\/.*\Z/
end
def new
    @group = Group.new
    3.times {@group.images.build}
end

def create
    @group = Group.new(group_params)

    if @group.save
        redirect_to groups_path
    else
        render 'new'
    end
end

def group_params
    params.require(:group).permit(:name)
end
<%= form_for @group, html: { multipart: true } do |f| %>
    <%= f.label :name %>
    <%= f.text_field :name %>
    <%= f.fields_for :images do |builder| %>
        <p>
          <%= builder.label :pic %>
          <%= builder.file_field :pic %>
        </p>
    <% end %>
    <%= f.submit %>
<% end %>
和我的表格:

class Group < ActiveRecord::Base
    has_many :images, :dependent => :destroy

    accepts_nested_attributes_for :images, :reject_if => lambda { |a| a[:pic].blank? }, :allow_destroy => true
end

class Image < ActiveRecord::Base
  belongs_to :group
  has_many :votes, :dependent => :destroy

  has_attached_file :pic, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
  validates_attachment_content_type :pic, content_type: /\Aimage\/.*\Z/
end
def new
    @group = Group.new
    3.times {@group.images.build}
end

def create
    @group = Group.new(group_params)

    if @group.save
        redirect_to groups_path
    else
        render 'new'
    end
end

def group_params
    params.require(:group).permit(:name)
end
<%= form_for @group, html: { multipart: true } do |f| %>
    <%= f.label :name %>
    <%= f.text_field :name %>
    <%= f.fields_for :images do |builder| %>
        <p>
          <%= builder.label :pic %>
          <%= builder.file_field :pic %>
        </p>
    <% end %>
    <%= f.submit %>
<% end %>


所以问题是,当我提交表单时,创建组没有问题。我可以在数据库中找到组,访问组属性(组的名称),但没有图像保存到数据库中。我也没有出错,所以我不确定到底发生了什么。有什么我遗漏的吗

注意:我正在使用回形针宝石来附加文件

def group_params
    params.require(:group).permit(:name, :images_attributes => [:pic])
end
您必须允许
组参数中的嵌套参数

更新您的代码:

def group_params    
params.require(:group).permit(:name, :images_attributes => [:pic,:_destroy])
end

我试过
params.require(:group).permit(:name,:pic)
params.require(:group).permit(:name,:pic)
,和
params.require(:group).permit(:name,:image)
,它们似乎都没什么不同,应该是
:images\u attributes=>[:pic]