Может ли модель принадлежать более чем одной модели? - PullRequest
4 голосов
/ 27 октября 2010
class Comment < ActiveRecord::Base  
  belongs_to :post  
  belongs_to :user  
end  

Итак, с помощью приведенной выше ассоциации я могу получить как данные пользователя, так и информацию из данного объекта комментария? как

@comment.post.post_title and  
@comment.user.user_name.  

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

resources :posts do  
   resources :comments  
end  

1 Ответ

7 голосов
/ 27 октября 2010

Да, вы можете, и вам не нужно указывать внешний ключ или имя класса для этого. Сказать belongs_to :user означает, что rails будет искать целое поле user_id в таблице комментариев и ожидать, что класс ActiveRecord с именем User существует.

Добавьте столько, сколько хотите, чтобы они не мешали друг другу.

...