私のサーバーには、次の 2 つのモデルがあります。
ブロードキャスト
class Broadcast < ActiveRecord::Base
validates_presence_of :content
belongs_to :user
has_and_belongs_to_many :feeds
attr_accessible :content, :feeds, :feeds_attributes
end
餌
class Feed < ActiveRecord::Base
has_and_belongs_to_many :broadcasts
attr_accessible :name
end
私のクライアントには、これらのモデル用の基本的な ActiveResource クラスがあります。
指定されたフィード (クライアントから) で新しいブロードキャストを作成しようとすると:
feed = Feed.find(3) <-succesful
broadcast = Broadcast.new
broadcast.attributes['feed'] ||= []
broadcast.feed << feed
broadcast.save
サーバー上の BroadcastController では、単純に
@broadcast = Broadcast.new(params[:broadcast])
次のエラーが発生します。
ActiveRecord::AssociationTypeMismatch (Feed(#45931224) が予想され、ActiveSupport::HashWithIndifferentAccess(#25685616) を取得):
変えてみた
broadcast.attributes['feed'] ||= []
に
broadcast.attributes['feed_attributes'] ||= []
しかし、「不明な属性エラー」が表示されました</p>