2016-07-25 7 views
0

私はhas_many関係を持っており、各アイテムの特定のフィールドをメインモデル(レシピの成分)にリンクします。私はbefore_filterでこれをやろうとしているので、ユーザーの入力を正しく入力して解析することができます。 doループを設定して、必要なパラメータを取得する方法railsコントローラのパラメータのループスルー方法

+0

少なくともコントローラまたはモデルコード –

+0

でデータを投稿してください。あなたは 'before_filter'フックでこれをやりたいとは思わないでしょう。 –

答えて

2

Railsのリクエストパラメータは、paramsハッシュでアクセスできます。イテレータを使用してハッシュをループすることができます。

params.each do |k,v| 
    puts "#{k}: #{v}" 
end 

、ユーザの入力を解析するためとして、私は個人的にbefore_filter方法でそれをしないだろう。あなたは、 "1 1/2"のような入力を1.5に変換する例を下に挙げました。

ingredient.rb:

# amount :decimal (assuming this column exists on the ingredients table) 

def humanized_amount 
    amount.humanize! 
end  

def humanized_amount=(value) 
    amount = cast_humanized_value_to_decimal(value) 
end 

その後、あなたのフォーム入力のための属性としてhumanized_amount使用し、このような何かを試してみてください。ちょうど提案。本当に正しい答えはありません。

+0

それでは、ifチェックを使用して、私が望むキーを見つけて修正したいのですか? – DRing

+0

はい、もう一度、私はあなたが問題へのあなたの全体的なアプローチを再考すべきだと思います。 paramsハッシュを変更することは良い考えではありません。 –

+0

私は提案を公開しています。テーブルに保存したいものと一致するようにユーザーの入力を変更して書式設定するにはどうすればよいですか。例えば、可能な "1 1/2"をとり、それを1.5に変換しようとする。 – DRing

関連する問題