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 进行比较,以查看它是否已经存在,否则选中的参数为 true。

在进行了如此冗长的描述之后,我想补充一点,这不会按计划进行任何想法。

4

1 回答 1

0

包括?而是为我工作

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