我是 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。
在进行了如此冗长的描述之后,我想补充一点,这不会按计划进行任何想法。