ROR のチェック ボックスにデフォルト値を割り当てようとしています。以下はヒエラルキーです。
- 値がパラメーターに含まれているかどうかを確認します (url クエリ文字列)
- セッション変数にあるかどうかを確認します
- どちらでもない場合は、すべての可能な値をデフォルトにし、@rates をすべての可能な値に設定します
私は次のコードを書きました:
@all_rates = Rates.all_rates
rates_all = {}
@all_rates.each {|rate| rates_all[rate] = "1"}
p rates_all
@rates = params[:rates] ||= session[:rates] ||= rates_all
puts @rates.length, @rates
ip rates_all の場合、ハッシュが返されますが、@rates.length をチェックすると、割り当てられていないため、0 が返されます。