現在VideosテーブルとCategoriesテーブルがあり、
videoは複数のカテゴリーを持っており、categoryもまた複数のvideoを持っているという多対多の関係です。
Videos/index.html.erbのページに
categoryのid(1)をもったvideoの情報だけを表示したいのですが、うまくいきません。
videos_controller.rb
def index @videos = Video.all @category = Category.find_by(id: params[:id]) end
videos/index.html.erb
<% @videos.each do |video| %> <div class="video-list"> <p><%= link_to "#{video.artist_name}","videos/#{video.id}" %></p> <p><%= link_to "#{video.music_name}","videos/#{video.id}" %></p> </div> <% end %>
現状上記のようなコードで、ここからcategory.idの(1)を含んだの情報だけを表示したいのですが、上手くいきません。if文等使って「idが1の場合表示する」というような命令を書ければ解決するとは思うのですが…
何か分かる方、アドバイス頂ければと思います。
よろしくお願いいたします。
【追記】
書き方はわかっていないのですが、
each の文法内にif @video == video_id: 1 などとすれば、ID1のvideoモデルの情報だけ表示できるのでは!?と考えているのですが、、この考え方はまちがっているでしょうか?
イメージとしては下記のような書き方です
<% @videos.each do |video| %> <div class="video-list"> <% if @video == video_id: 1%> <p><%= link_to "#{video.artist_name}","videos/#{video.id}" %></p> <p><%= link_to "#{video.music_name}","videos/#{video.id}" %></p> <% end %> </div> <% end %>
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/16 01:03