私のモデル (pins.rb) には、2 つの並べ替え順序があります。
default_scope order: 'pins.featured DESC' #for adding featured posts to the top of a list
default_scope order: 'pins.created_at DESC' #for adding the remaining posts beneath the featured posts
この並べ替え順序 (上記) は、「ピン ビュー」(index.html.erb) の外観です。これは、すべてのユーザー投稿の単なるリストです。
「ユーザー ビュー」(show.html.erb) では、同じモデル (pins.rb) を使用して current_user ピンのみを一覧表示しています。ただし、「注目の」デフォルトスコープを無視し、2番目のスコープのみを使用するように並べ替えたいと思います。
default_scope order: 'pins.created_at DESC'
どうすればこれを達成できますか? 私はこのようなことをしてみました:
default_scope order: 'pins.featured DESC', only: :index
default_scope order: 'pins.created_at DESC'
でも飛ばなかった…
アップデート
スコープを定義するためにモデルを更新しました。
scope :featy, order: 'pins.featured DESC'
default_scope order: 'pins.created_at DESC'
ピンビューを次のように更新しました。
<%= render @pins.featy %>
ただし、ピン ビューを開くと、次のエラーが表示されます。
undefined method `featy' for #<Array:0x00000100ddbc78>