您好我正在尝试以一种形式从不同的模型创建两个对象。它们通过has_many / belongs_to关系连接。事件has_many图片具有多态性,因为可以与其他模型相关联。我得到了无法大规模分配受保护的属性:如果我设置图片:attr_accesible中的图片它说“未知属性:图片”。
这是我的表单代码:
<%= form_for @event, :html => { :class => 'form-horizontal' } do |f| %>
<div class="control-group">
<%= f.label :titre, :class => 'control-label' %>
<div class="controls">
<%= f.text_field :titre, :class => 'text_field' %>
</div>
</div>
<div class="control-group">
<%= f.label :Date, :class => 'control-label' %>
<div class="controls">
<%= f.date_select :dday, :class => 'date_select', :start_year=>Date.today.year, :end_year=>1905 %>
</div>
</div>
<div class="control-group">
<%= f.label :lieux, :class => 'control-label' %>
<div class="controls">
<%= f.text_field :lieux, :class => 'text_field' %>
</div>
</div>
<div class="control-group">
<%= f.label :description, :class => 'control-label' %>
<div class="controls">
<%= f.text_area :commentaire, :class => 'text_area', :rows => 4 %>
</div>
</div>
<%= f.fields_for @event.pictures.new do |p| %>
<%= p.text_field :name, :placeholder=>"Nom de votre image" %>
<%= p.file_field :image %>
<% end %>
和我的模型代码
class Event < ActiveRecord::Base
attr_accessible :dday, :lieux, :titre, :commentaire, :picture
belongs_to :user
has_many :pictures, :as => :imegeable ,:dependent => :destroy
default_scope :order => :dday
validates :dday, :titre, :presence=>true
end
感谢您的帮助。
答案 0 :(得分:1)
自从我完成任何Rails工作以来已经有一段时间了,所以自从我上次这样做以后可能会发生变化,但我认为您需要在事件模型上指定accepts_nested_attributes_for :pictures
。
答案 1 :(得分:0)
尝试将代码中的last fields_for更改为:
<%= f.fields_for :pictures do |p| %>
<%= p.text_field :name, :placeholder=>"Nom de votre image" %>
<%= p.file_field :image %>
<% end %>
添加到您的型号:
accepts_nested_attributes_for :pictures
将模型中的attr_accessible更改为:
attr_accessible :dday, :lieux, :titre, :commentaire, :pictures_attributes