RoRは初めてです。私が直面している問題は、いくつかのチェックボックスがあり、最初にアプリを初めて実行するときにすべてを選択し、次回は最後のチェックボックスをオンにすることです。これを行うには、私のコントローラーで私は持っています
@all_ratings = Movie.all_ratings
@selected_ratings = []
if !params[:ratings].nil?
params[:ratings].each_key do |key|
@selected_ratings << key
end
elsif
@selected_ratings = @all_ratings
end
私のモデルは次のように見えますが
class Movie < ActiveRecord::Base
def self.all_ratings
@all_rating = ['G', 'PG', 'PG-13', 'R']
end
end
フォームは次のようになります
Include:
- @all_ratings.each do |rating|
= rating
= check_box_tag "ratings[#{rating}]", 1, rating==@selected_ratings.each{|s_rating|}
= submit_tag 'Refresh', :id => "ratings_submit"
今私がコントローラーでやろうとしているのは、パラメーターが空かどうかを確認したいということです。空の場合は、すべての値をチェックしたいので、インスタンス変数@selected_ratinngsを作成し、評価のすべての値をに渡します。チェックボックスからいくつかの値を選択している場合は、それらの値をselected_ratingsに保存します。
ビューでselected_ratingを使用することを計画しており、check_box_tagでselected_ratingをratingと比較して、すでに存在するかどうかを確認し、そうでない場合はcheckedパラメーターがtrueになります。
そのような長い説明の後、私はこれが計画通りに機能しないことを付け加えたいと思います。