2009-06-29 13 views
1

Ich benutze die Option: overwrite_params in link_to Helfer. Aber ich habe Probleme beim Überschreiben verschachtelter Parameterwerte. Hier einige Code:Rails: overwrite_params mit verschachtelten Parametern

mit:

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

Der komplette params[:filter] Wert ersetzt wird (. Dh verlor ich params[:filter][:author] Wert)

Wenn ich benutze:

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

ich nicht verlorene Werte, aber wenn params[:filter][:editorials] in der URL vorhanden ist, ist eine weitere params[:filter][:editorials] beigefügt, so dass ich nicht überschreiben.

Irgendwelche Hilfe?

Vielen Dank im Voraus.

Antwort

1

Geben Sie einen looong Schuss hier.
Können Sie dies versuchen:

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

Dann würden Sie wahrscheinlich params initialisieren müssen [: Filter] irgendwo, sicher, dass Sie laufen nicht nil.merge()

Just do

params[:filter] ||= {} 
zu machen

irgendwo in Ihrem Code.

Noch einmal, das ist wahrscheinlich nicht die beste Lösung.
Hoffentlich hilft es Ihnen, etwas herauszufinden oder in Bewegung zu bleiben, bis jemand eine bessere Antwort gibt :)

Verwandte Themen