Сообщение принадлежит_ пользователю, а пользователь имеет_ множество сообщений.
Сообщение также принадлежит_ Теме, а Тема имеет_Много сообщений.
class User < ActiveRecord::Base
has_many :posts
end
class Topic < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :topic
end
Ну, это довольно просто и очень легко настроить, но когда я отображаю тему, мне нужны не только все сообщения для этой темы, но также имя пользователя и фотография пользователя, создавшего это сообщение. Однако эти атрибуты хранятся в пользовательской модели и не привязаны к теме. Итак, как мне это настроить?
Может быть, его уже можно вызвать, поскольку модель Post имеет два внешних ключа: один для пользователя и один для темы?
Или, может быть, это какой-то "односторонний" has_many через ассоциацию. Например, пост будет моделью объединения, а тема - has_many: users,: through =>: posts. Но обратное этому не соответствует действительности. Как пользователь НЕ имеет has_many: themes.
Так должно ли это быть has_many: хотя ассоциация? Полагаю, я немного запутался в том, как контроллер будет называть пост и пользователя этого поста для данной темы.
Редактировать: Серьезно, спасибо всем, кто взвесил. Я выбрал ответ Тала, потому что я использовал его код для моего контроллера; тем не менее, я мог бы так же легко выбрать Дж. или Тим. Спасибо вам обоим. Это было так чертовски просто реализовать. Я думаю, что сегодня можно отметить начало моей любовной связи с рельсами.