На моем сервере у меня есть две модели:
Трансляция
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::HashWithIn DifferentAccess(#25685616)):
я пытался изменить
broadcast.attributes['feed'] ||= []
to
broadcast.attributes['feed_attributes'] ||= []
Но это дало мне «Неизвестная ошибка атрибута»