1

インスタンス変数に含まれる値と一致する事前にチェックされたボックスを使用してcheck_box_tagを実装するにはどうすればよいですか@array

= form_tag xxx_path, :method => :get do 
  - @all_names.each do |name|
    = rating
    = check_box_tag "names[#{name}]", CHECKED IF name in @array
  = submit_tag 'Refresh'

編集-最初にコントローラー:

  def index
    if params[:ratings]
      @filtered_ratings = params[:ratings]
      @movies = Movie.find(:all, :conditions => ["rating IN (?)", @filtered_ratings], :order => params[:sort])
    else
      @movies = Movie.find(:all, :order => params[:sort])   
    end
  end

今すぐ表示:

= form_tag movies_path, :method => :get do
  Include: 
  - @all_ratings.each do |rating|
    = rating
    = check_box_tag "ratings[#{rating}]", 1, @filtered_ratings.include?(rating) ? true : false
= submit_tag 'Refresh'
4

1 に答える 1

1

これを試して:

= form_tag xxx_path, :method => :get do 
  - @all_ratings.each do |rating|
    = rating
    = check_box_tag "ratings[#{rating}]", 1, @filtered_ratings.include?(rating) ? true : false
  = submit_tag 'Refresh'

コントローラ内:

def index
  @filtered_ratings = params[:ratings] || [] # if no params[:ratings] then assign empty array
  @movies = Movie.order(params[:sort])
  @movies = @movies.where(rating: params[:ratings]) if params[:ratings].present?
end
于 2013-01-29T21:45:08.207 に答える