2012-11-27 90 views
2

我有兩個型號的服務器:Rails的,嵌套的屬性,不能大規模分配錯誤

飼料

class Feed < ActiveRecord::Base 
    attr_accessible :name 
    belongs_to :broadcasts 
    end 

廣播

class Broadcast < ActiveRecord::Base 

    validates_presence_of :content 

    attr_accessible :content, feeds, feeds_attributes 

    belongs_to :user 
    has_many :feeds 
    accepts_nested_attributes_for :feeds 

    def to_s 
     result = "id: " + id.to_s + " content: " + content 
     if user 
     result += " user: " + user.id.to_s 
     end 
     result 
    end 

    def self.per_page 
     8 
    end 
    end 

在我的客戶,我有基本的ActiveResource類用於廣播和Feed

當我嘗試使用給定Feed(來自客戶端)創建新廣播時:

feed1 = Feed.find(3) <-succesful 

broadcast = Broadcast.new 
broadcast.attributes['feeds_attributes'] ||= [] 
broadcast.feed_attributes << feed 
broadcast.save 

在BroadcastController在服務器上,我簡單地做

@broadcast = Broadcast.new(params[:broadcast]) 

它提供了以下錯誤:

不能大規模指派保護的屬性:喂

回答

0

我想你需要在廣播模型中添加一個名爲feed_id的列,並且attr_accessible將爲

attr-accessible :feed_id 

廣播模型中

需要創建一個外鍵

0

您不能直接分配進料feed_attributes哈希(如果這就是你真正想要做的)。

變化broadcast.feed_attributes << feed(?應該不是被FEED1)到:

broadcast.feed_attributes << feed1.attributes 
相關問題