Гнездовая модель со многими отношениями на одной и той же модели, во вложенной модели ... Rails 3 - PullRequest
0 голосов
/ 29 января 2011

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

Во-первых, у меня есть модель. Давайте называть это сообщениями.

Тогда у меня есть вторая модель, которая, по сути, является таблицей соединений, связывающей два разных сообщения вместе. Мы можем назвать это сообщение соединениями.

Я выполнил это, выполнив следующие инструкции: Отношение «многие ко многим» с той же моделью в рельсах? для однонаправленного с дополнительными полями.

Код для этих моделей выглядит так:

class PostConnection < ActiveRecord::Base
  belongs_to :post_a, :class_name => :Post
  belongs_to :post_b, :class_name => :Post
end

class Post < ActiveRecord::Base
  has_many(:post_connections, :foreign_key => :post_a_id, :dependent => :destroy)
  has_many(:reverse_post_connections, :class_name => :PostConnection,
      :foreign_key => :post_b_id, :dependent => :destroy)

  has_many :posts, :through => :post_connections, :source => :post_b
  accepts_nested_attributes_for :post_connections
end

Пока все отлично работает - и когда я создаю почтовые соединения вручную с помощью rails admin, они работают просто замечательно.

Теперь проблема в том, что я хотел бы создать форму, в которой есть пост-соединения, вложенные в посты.

Я пытался следить за ролями: http://railscasts.com/episodes/73-complex-forms-part-1

Но даже первые несколько шагов не сработали. Я не получил ошибку. Ничего не обнаружилось там, где должны были быть поля. (Мне интересно, связано ли это с:

  3.times { @post.post_connections.build }

)

Есть ли более сложный способ, которым я должен идти об этом на основе моделей?

1 Ответ

1 голос
/ 29 января 2011

Вы пропустили = в <% =? В Rails 3 вам нужно использовать = for form_form и fields_for. </p>

: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...