在我的登录页上,我试图列出一个游戏模型的所有实例以及与之相关的分配模型。创建游戏时,也会创建任务。传递到该任务中的唯一内容是游戏id。其他3个参数保留为零。我如何在不获得许可的情况下显示游戏
undefined method 'name' for nil:NilClass
optional: true
设置,但我想不是。
我知道在_feed.html.erb文件中,它返回了那个错误,因为它需要一个用户对象,所以我只需要在其中嵌入一些逻辑来防止那个错误?最后,如果
center_referee
assistant_referee_1
,及/或
assistant_referee_2
尚未设置,我需要它显示为空白
_feed.html.erb
<div>
<% @games.each do | game | %>
<p ><%= game.home_team %> vs <%= game.away_team %></p>
<p >Center Referee: <%= game.assignment.center_referee.name %></p>
<p >AR1: <%= game.assignment.assistant_referee_1.name %></p>
<p >AR2: <%= game.assignment.assistant_referee_2.name %></p>
<br></br>
<% end %>
</div>
models/game.rb
class Game < ApplicationRecord
has_one :assignment, dependent: :destroy
has_many :users, through: :assignment
after_save :create_assignment
def create_assignment
Assignment.create(game_id: id)
end
end
models/assignment.rb
class Assignment < ApplicationRecord
belongs_to :game
belongs_to :center_referee, class_name: 'User', optional: true
belongs_to :assistant_referee_1, class_name: 'User', optional: true
belongs_to :assistant_referee_2, class_name: 'User', optional: true
accepts_nested_attributes_for :game
end