Почему пользовательской модели не нужен has_many ?

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

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

Вопрос:

В главе 6 «Rails 3 в действии«, раздел 6.5.1, мы связали тикет с пользователем, используя:

 @ticket = @project.tickets.build(params[:id].merge!(:user => current_user))
  

и у Ticket модели есть эта директива: belongs_to :user , тогда все это работает.

Но почему User модели не нужно has_many :tickets создавать ассоциацию «один ко многим» между пользователем и темой?

Ответ №1:

Вы уверены has_many , что в пользовательской модели нет

@user.topics определенно не будет работать, если у вас нет has_many :topics набора в пользовательской модели.

Точно так @topic.user же не будет работать, если вы не установили belongs_to :user в теме model .

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

1. да, has_many :tickets в пользовательской модели его нет, и я также проверяю источник, предоставленный the book press