models / user.rb
class User < ActiveRecord::Base
has_many :clubs, :dependent => :destroy
has_many :announcements, :dependent => :destroy
end
models / announce.rb
class Announcement < ActiveRecord::Base
belongs_to :user
belongs_to :club
end
models / club.rb
class Club < ActiveRecord::Base
belongs_to :user
has_many :announcements, :dependent => :destroy
end
контроллеры / анонсы / announcements_controller.rb
def index
@announcements = Announcement.find(:all, :include => [:user, :club])
end
Проблема:
Когда я набираю этот код,
просмотров / объявлений / index.html.erb
<% @announcements.each do |announcement| %>
<%= announcement.user.username %>
<% end %>
Я получаю эту ошибку:
NoMethodError in Announcements#index
undefined method `username' for nil:NilClass
, когда я изменяю код на это, он работает.
<% @announcements.each do |announcement| %>
<%= announcement.club.user.username %>
<% end %>
Почему первый код не работает?В чем разница между этими кодами.Спасибо.