私はルビーとレールを初めて使用し、この問題に数日間苦労しています。アプリの他の場所にこのような別の関連付けがあったことは知っていますが、これは機能していません。
Game モデルと Character モデルの間に has_many と belongs_to の関係があります。
game.rb
has_many :characters
キャラクター.rb
belongs_to :game, :foreign_key => 'game_id'
game_id をキャラクターに保存し、次のようにゲームの名前をビューに表示できるようにしたい:
<%= @character.game.name %>
しかし、私はこのエラーが発生します:
NoMethodError in Characters#show
.../rpglegion/app/views/characters/show.html.erb を表示していて、5 行目が発生しています:
nil:NilClass の未定義のメソッド `name'
抽出されたソース (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
アソシエーションが機能していないということで、何が間違っているのか正確にはわかりません。誰か助けてくれませんか?