Ruby on Rails — родительский объект для создания с присоединенным дочерним объектом

#ruby-on-rails #ruby #ruby-on-rails-3

#ruby-on-rails #ruby #ruby-on-rails-3

Вопрос:

У меня есть родительский объект, который имеет полиморфную ассоциацию-has_many с дочерним объектом. Дочерний объект не имеет обратной связи со своим родительским объектом. Он имеет полиморфную связь только с самим собой. Используя AJAX, я хотел бы отправить родительский объект вверх. Я хотел бы, чтобы родительский объект включал дочерний объект и создавал дочерний объект параллельно сам в разделе создания родительского контроллера. Однако коду не нравится то, что я делаю, и он терпит неудачу. Я не уверен, является ли это проблемой с соглашением об именовании (Т. Е. именем объекта, передаваемого в rails) или проблемой со связыванием отношений между моделями.

 Parent Model:

    has_many :tags, :as => :taggable

Tag Model:

    belongs_to :taggable, :polymorphic => true
  

Объект передан для попытки создания:

 Parent:
 Parent_attributes
 tagables_attributes
  [0]
   'content'
  [1]
   'content'
  ...
  

Я пробовал передавать «tabables_attributes» со многими разными похожими именами. Как я уже сказал, я не уверен, было ли это частью проблемы или нет. Возможно, это неправильное имя объекта или, возможно, это проблема модели?

   Tag:

  t.text :content
  t.integer :taggable_id
  t.string :taggable_type
  

Пожалуйста, дайте мне знать любые идеи относительно того, что я, возможно, делаю здесь неправильно.

Ответ №1:

Добавьте accepts_nested_attributes_for в свою родительскую модель.

Смотрите http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

Комментарии:

1. Идеально, столько времени потрачено на поиск одной маленькой строки. ха-ха