我是 ruby 和 rails 的新手,几天来一直在努力解决这个问题。我知道我在我的应用程序的其他地方有另一个这样的关联,但是这个关联不起作用。
我的游戏模型和角色模型之间有 has_many 和 belongs_to 关系。
游戏.rb
has_many :characters
字符.rb
belongs_to :game, :foreign_key => 'game_id'
我希望能够将 game_id 存储在角色中,然后在视图中显示游戏名称,如下所示:
<%= @character.game.name %>
但我得到这个错误:
字符中的 NoMethodError#show
显示 .../rpglegion/app/views/characters/show.html.erb 其中第 5 行提出:
nil:NilClass 的未定义方法“名称”
提取的源代码(第 5 行附近):
5: <%= @character.game.name %>
应用程序跟踪 | 框架跟踪 | 全跟踪
app/views/characters/show.html.erb:5:in >_app_views_characters_show_html_erb__872566584_80495980' app/controllers/characters_controller.rb:20:in `show'
_characters_controller.rb_
def show
@character = Character.find(params[:id])
respond_to do |format| #line 20
format.html # show.html.erb
format.xml { render :xml => @character }
end
end
我无法弄清楚我到底做错了什么,协会不起作用。有人能帮帮我吗?