我在服务器上有两个模型:
饲料
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
在我的客户端上,我有用于广播和馈送的基本活动资源类
当我尝试使用给定的源(来自客户端)创建新的广播时:
feed1 = Feed.find(3) <-succesful
broadcast = Broadcast.new
broadcast.attributes['feeds_attributes'] ||= []
broadcast.feed_attributes << feed
broadcast.save
在服务器上的广播控制器中,我只需做
@broadcast = Broadcast.new(params[:broadcast])
这给出了以下错误:
无法批量分配受保护的属性:源
我认为您需要在广播模型中添加一个名为 feed_id 的列,attr_accessible
attr-accessible :feed_id
在广播模型中
需要创建外键
您
不能直接将源分配给feed_attributes哈希(如果这是您实际尝试执行的操作)。
将broadcast.feed_attributes << feed
(不应该是 feed1?)更改为:
broadcast.feed_attributes << feed1.attributes