2012-10-21 79 views
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, [email protected]_ratings.each{|s_rating|} 
    = submit_tag 'Refresh', :id => "ratings_submit" 

現在我所試圖做的在控制器是,我想看看如果參數是空的,如果它是然後我想檢查所有的值,所以我創建一個實例變量@selected_ratinngs並通過評級的所有值。如果我從複選框中選擇了一些值,那麼我將這些值保存在selected_ratings中。

在我計劃使用selected_rating的視圖和check_box_tag想比較評級selected_rating,看看它已經存在,則檢查參數爲true,否則。

這樣的lenghty描述之後,我想補充一點,作爲計劃的任何想法,這並不工作。

回答

0

包括哪些內容?爲我工作,而不是

= check_box_tag "ratings[#{rating}]", 1, (@selected_ratings.include? rating) 
相關問題