我是新的紅寶石和鐵軌,並一直在努力解決這個問題幾天。我知道我在我的應用程序的其他地方有另一個關聯,但這只是不起作用。has_many和belongs_to在視圖中給出錯誤
我有一個has_many和belongs_to我的遊戲模型和角色模型之間的關係。
game.rb
has_many :characters
character.rb
belongs_to :game, :foreign_key => 'game_id'
我希望能夠到game_id存儲在字符,然後在的觀點一樣,展示遊戲的名字這個:
<%= @character.game.name %>
但是我得到這個錯誤:
NoMethodError in Characters#show
Showing .../rpglegion/app/views/characters/show.html.erb where line #5 raised:
undefined method `name' for nil:NilClass
Extracted source (around line #5):
5: <%= @character.game.name %>
Application Trace | Framework Trace | Full Trace
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
我無法弄清楚究竟我做錯了,該協會不工作。有人能幫幫我嗎?
謝謝你們倆。我現在覺得很愚蠢,以至於我知道問題是什麼。一旦我進入rails控制檯,我發現分配給該角色的game_id已經老了,並且不再存在於表中。下一次,我會先去控制檯! –