前提・実現したいこと
railsで一対多の関係(リレーション、アソシエーション)を実装中です。
Userモデルを親、Theaterモデルを子としたのですが、使用できるようになるはずのメソッドが使えず困っています。
発生している問題・エラーメッセージ
ビューの、/theater/index.htmlの
ruby
1<% @theaters.each do |theater| %> 2 <a href="/user/<%= theater.user.id %>"><%= theater.user.id %></a> 3 <p><a href="/theater/<%= theater.id %>"><%= theater.theater %></a></p> 4 <% end %>
の箇所で、ブラウザで実行すると、
undefined method `id' for nil:NilClass
のエラーが出てしまいます。
(一対多の関係を結ぶと、theater.user.idやtheater.user.nameといった書き方がokなはずですよね?もし理解が間違っていたらすみません。)
該当のソースコード
Userモデルにて、
ruby
1has_many :theaters
Theaterモデルにて、
ruby
1belongs_to :user
としています。
念の為、ルーティングとコントローラーも記載します。
routes
ruby
1get "/theater/index" =>"theater#index"
theater_controller
ruby
1def index 2 @theaters = Theater.all 3 @theater = Theater.new 4 end
試したこと
ググるなどして色々と調べてみたのですが、原因がわかりませんでした。
補足情報(FW/ツールのバージョンなど)
ruby 2.5.0, rails 5.1.6, cloud9
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 19:45