2009-06-29 20 views
1

私はlink_toヘルパーで:overwrite_paramsオプションを使用しています。しかし、ネストされたパラメータ値を上書きする際に問題があります。ここではいくつかのコード:付きRails:ネストされたパラメータを持つoverwrite_params

link_to book_item.editorial, :overwrite_params => {:filter => {[editorials.id] => book_item.editorial.id.to_s}} 

完全params[:filter]値が交換された私が使用している場合は

を(つまり、私はparams[:filter][:author]価値を失った。):

link_to book_item.editorial, :overwrite_params => {'filter[editorials.id]' => book_item.editorial.id.to_s} 

私はしないでくださいURLにparams[:filter][:editorials]が存在する場合は、別のparams[:filter][:editorials]が添付されていますので、上書きはありません。

助けが必要ですか?

ありがとうございます。

答えて

1

ここにルーオンショットを与える。
あなたはこの試みることができます:

link_to book_item.editorial, :overwrite_params => { :filter => params[:filter].merge({[editorials.id] => book_item.editorial.id.to_s}) } 

を次に、あなたは、おそらくのparamsを初期化する必要があるだろう[:フィルタ]をどこかで、あなたはnil.merge()

を実行していないことを確認するためには、ちょうど

params[:filter] ||= {} 
を行いますあなたのコードのどこかに

もう一度、これはおそらく最良の解決策ではありません。
うまくいけば、誰かがより良い答えを出すまで何かを見つけたり移動したりするのに役立ちます。

関連する問題