2013-03-09 71 views
0

嗨我試圖從一種形式的不同模型創建兩個對象。它們通過has_many/belongs_to關係連接。事件has_many圖片是多態的,因爲可以與其他模型相關聯。我得到不能大規模分配受保護的屬性:圖片如果我設置:attr_accesible中的圖片它說我「未知的屬性:圖片」。Rails在一種形式中創建兩個模型

這裏是我的表單代碼:

<%= 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 

感謝您的幫助。

回答

1

自從我完成任何Rails工作以來,這已經有一段時間了,所以這可能在我上次做過之後發生了變化,但我認爲您需要在Event模型中指定accepts_nested_attributes_for :pictures

+0

當我這樣做我得到一個新的錯誤「沒有發現名稱」圖片「的關聯。它已被定義了嗎?」 – user1796260 2013-03-09 14:41:53

+0

修正了拼寫錯誤:'圖片',而不是'圖片'。 – ChrisC 2013-03-09 14:44:13

+0

抱歉,我不明白你的意思? – user1796260 2013-03-09 14:46:50

0

嘗試最後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 
+0

好吧它的工作方式非常感謝。 – user1796260 2013-03-11 16:46:19

相關問題