わかりました。これはSaasコース用であり、人々はそれに関連する質問も行っていますが、私は多くの時間を試して読んでいて、行き詰まっています。まず、Movieというモデルがある場合は、評価をモデルとして使用して関連付けるか、空間に浮かぶ配列に評価を保持する方がよいでしょう(!)。次に、コントローラーに現在あるものを次に示します。
def index
@movies = Movie.where(params[:ratings].present? ? {:rating => (params[:ratings].keys)} : {}).order(params[:sort])
@sort = params[:sort]
@ratings = Ratings.all
end
今、私はそれがより良いだろうと思ったので、評価モデルを作成することにしました。これが私の見解です:
= form_tag movies_path, :method => :get do
Include:
- @ratings.each do |rating|
= rating.rating
= check_box_tag "ratings[#{rating.rating}]"
= submit_tag "Refresh"
「.include?(rating)?true:」で終わるチェックボックスタグ内の条件付き3項の使用に関連するすべてを試しましたが、機能するはずのすべてを試しましたが、機能しません。正確な答えは必要ありません。 、ガイダンスが必要です。よろしくお願いします。
更新(コントローラーのメソッド):
わかりやすくするために、このハッシュを読み取っているコントローラー内のインデックスメソッドを次に示します。以前、あいまいさをお詫び申し上げます。
def index
@all_stores = Product.all_stores
@selected_stores = params[:stores] || session[:stores] || {}
if @selected_stores == {}
@selected_stores = Hash[@all_stores.map {|store| [store, store]}]
end
if params[:stores] != session[:stores]
# session[:stores] = @selected_stores
session[:stores] = params[:stores]
redirect_to :stores => @selected_stores and return
end
@products = Product.order("created_at desc").limit(150).find_all_by_store(@selected_stores.keys).group_by { |product| product.created_at.to_date}
. . . etc