Ich habe ein Konsistenzproblem mit link_to_remote in Schienen.Problem mit link_to_remote in Schienen
Ich habe 2 Anwendungsfälle von link_to_remote, und sie erzeugen unterschiedliche Ajax. Ich kann nicht herausfinden, warum, und es macht mich verrückt.
Hier Anwendungsfall ein ...
<%= link_to_remote "section-", :update => "sections", :url => {:action => :destroy, :controller => "sections", :id => @section.id } %>
Dies erzeugt die entsprechende Ajax (wie unten) und arbeitet als ich erwartet. Beachten Sie, dass es den Aktionsparameter aus dem Aufruf aufnimmt und im Ajax korrekt einfügt.
<a href="#" onclick="if { new Ajax.Updater('sections', '/sections/destroy/1', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('f5e50e62fafd118e4588b33c9571ea6eef864176')}); }; return false;">section-</a>
Ich habe auch einen anderen Fall, in dem ich link_to_remote verwenden, aber es erzeugt eine falsche Ajax. Der Anwendungsfall ist nahezu identisch, außer dass der Controller anders ist. Wie auch immer, ich würde nicht erwarten, dass dies zu einem anderen Ajax führt.
Der Aufruf ...
<%= link_to_remote "question-", :update =>"questions-1", :url => {:action => :destroy, :controller => "questions", :id => @question.id} %>
Das resultierende Ajax ...
<a href="#" onclick="if { new Ajax.Updater('questions-1', '/questions/1', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('f5e50e62fafd118e4588b33c9571ea6eef864176')}); }; return false;">question-</a>
Der offensichtliche Unterschied hier ist, in der zweiten arg zu Ajax.Updater. Der Aktionsparameter fehlt in diesem Pfad. Warum? Dies führt zu einem Code-Bruch für mich, aber ich kann nicht verstehen, warum dies geschieht. Die Aufrufe von link_to_remote sind nahezu identisch.
Bitte zeigen Sie mir in die richtige Richtung. Vielen Dank.
Unten ist mein routes.rb Datei ...
ActionController::Routing::Routes.draw do |map|
map.resources :questions, :has_one => :section, :collection => { :sort => :post }
map.resources :sections, :has_many => :questions, :has_one => :form, :collection => { :sort => :post }
map.resources :forms, :has_many => :sections
# You can have the root of your site routed with map.root -- just remember to delete public/index.html.
map.root :controller => "forms"
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end
Können Sie Ihre routes.rb-Datei posten? –