2009-06-29 5 views
1

J'utilise l'option: overwrite_params dans link_to helper. Mais j'ai des problèmes d'écraser les valeurs des paramètres imbriqués. Voici un code:Rails: overwrite_params avec paramètres imbriqués

Avec:

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

La valeur params[:filter] complète est remplacé (.-À-dire que je perdu la valeur params[:filter][:author])

Si j'utilise:

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

Je ne valeurs perdues, mais si params[:filter][:editorials] existe dans l'URL, un autre params[:filter][:editorials] est attaché, donc je ne reçois aucun écrasement.

Une aide?

Merci d'avance.

Répondre

1

Donner un coup de feu ici.
Pouvez-vous essayer:

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

Ensuite, vous aurez besoin probablement d'initialiser params [:] filtre quelque part, pour vous assurer que vous ne courez pas nil.merge()

Il suffit de faire

params[:filter] ||= {} 

quelque part dans votre code.

Encore une fois, ce n'est probablement pas la meilleure solution.
J'espère que cela vous aidera à comprendre quelque chose ou continuer à bouger jusqu'à ce que quelqu'un donne une meilleure réponse :)

Questions connexes