Как назначить существующие объекты для отношения has_many с помощью Hash - PullRequest
0 голосов
/ 01 февраля 2012

У меня такие отношения между моделями

class Post < ActiveRecord::Base
   has_many :documents, :as=>:documentable
   accept_nested_attributes_for :documents
end

class Document < ActiveRecord::Base
   belongs_to :documentable, :polymorphic=>true
end

У меня уже есть набор документов, в которых есть documentable_type и documentable_id до NULL, предположим, что их идентификаторы равны 1 и 2

Теперь я хочу создать новую запись с существующими документами, я сгенерировал хэш следующим образом.

h = {:post=>{:title=>'Post Title', :documents_attributes=>{"0"=>{:id=>1},"2"=>{:id=>2}}}}

, а затем создайте сообщение как @post = Post.new(h[:post])

Но после прихода он ищет documents с documentable_type='Post' и documentable_id=NULL, который не может быть найден.

Каков правильный способ создания хэша для такого сценария?

1 Ответ

0 голосов
/ 01 февраля 2012

Я наконец решил проблему с помощью этого хэша:

h = {:post=>{:title=>'Post Title', :document_ids=>{1,2}}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...