0

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になります。

そのような長い説明の後、私はこれが計画通りに機能しないことを付け加えたいと思います。

4

1 に答える 1

0

含む?代わりに私のために働いた

= check_box_tag "ratings[#{rating}]", 1, (@selected_ratings.include? rating)
于 2012-10-21T05:01:57.693 に答える