###前提・実現したいこと
Youtubeをスクレイピングした動画まとめサイトを作っています。
そこで、showアクションにおいて、関連動画やおすすめの動画を引っ張ってくる機能を実現したいです。
関連動画とは、同じジャンル(genre)を持つ動画の中を人気順に並べたものとします。
おすすめ動画とは、全ジャンル(genre)の動画の中を人気順に並べたものとします。
また、関連動画、おすすめ動画を再生している時には、再生している動画がその一覧からは外れる仕様にしたいと思っています。
###発生している問題・エラーメッセージ
コントローラにおける以下2点の絞り込みの記述方法がわかりません。
- 「今再生しているID以外」という絞り込み
- 「今再生しているIDと同じジャンル」という絞り込み
なお、アプリケーション自体はアソシエーションなどで複数の階層モデルを作っているわけではなく、単一モデル(dog)で作成しています。
###ソースコード
ruby
1#app/controllers/dogs_controller.rb 2 def show 3 @dog_title = Dog.find(params[:id]).title 4 @dog_url = Dog.find(params[:id]).url.match(/\?([^&]+)/).to_s.sub("?v=","") 5 @related_movie = Dog."???" 6 @recommended_movie = Dog."???" 7 @tags = Dog.tag_counts_on(:tags).order('count DESC') 8 end
なお、挫折したコードが以下のとおりです。
<>の中に何かが入れば実現できるのかなぁ‥と思っていますが…。
ruby
1# おすすめ動画 2@recommended_movie=Dog.<今再生しているID以外のすべて>.order(fav DESC) 3# なお、favは人気を表す変数です。 4 5# 関連動画 6@related_movie=Dog.<今再生しているID以外のすべて>.<引数によって絞り込む>(Dog.find(params[:id]).genre).order(fav DESC)
###補足情報(言語/FW/ツール等のバージョンなど)
Ruby 2.2.2
Rails 4.2
MySQL
ご指導宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/26 03:20