我有一段javascript可以触发一个ajax请求,请求的结果被加载到一个弹出对话框中。
这在所有情况下都是相同的javascript,但在一种情况下,路由失败。
在new_army_list页面中:
Started POST "/army_lists/preview" for 127.0.0.1 at 2010-10-13 21:42:15 -0400
Processing by ArmyListsController#preview as */*在edit_army_list页面中:
Started POST "/army_lists/preview" for 127.0.0.1 at 2010-10-13 21:40:35 -0400
ActionController::RoutingError (No route matches "/army_lists/preview"):
Rendered /home/bluepojo/.rvm/gems/ruby-1.9.2-p0/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.3ms)有问题的javascript:
function preview() {
$.facebox(function() {
var post_data = $('form').serialize();
$.post('/army_lists/preview', post_data, function(data) {
$.facebox(data);
});
});
}知道是怎么回事吗?我不知道从哪里开始调试。
更新:路由:
preview_army_list POST /army_lists/preview(.:format) {:controller=>"army_lists", :action=>"preview"}UPDATE2:视图
application.html.haml
!!! XML
!!!
%head
%title
Skirmisher
= stylesheet_link_tag 'screen'
= stylesheet_link_tag 'facebox/facebox'
= yield :stylesheets
= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js'
= javascript_include_tag 'facebox/facebox'
= yield :javascripts
= csrf_meta_tag
%body
#wrapper
#wrapper-top
= yield
= render :partial => 'shared/get_satisfaction_tab'edit.html.haml
= render :partial => 'form'new.html.haml
= render :partial => 'form'_form.html.haml
- content_for :javascripts do
= javascript_include_tag 'new_list'
= form_for @army_list do |f|
-if @army_list.errors.any?
#errorExplanation
%h2= "Fix #{pluralize(@army_list.errors.count, "error")} to save your list:"
%ul
- @army_list.errors.full_messages.each do |msg|
%li= msg
.paper-super-wrapper
.paper-wrapper
= render :layout => 'shared/sidebar' do
%li
= f.submit 'Save', :id => 'save'
%li.last
%a{:href => '#', :title => 'Preview', :id => 'preview'}
Preview
= render :partial => 'floating_label', :locals => {:label => 'Title'}
.paper-wrapper
= render :layout => 'shared/paper' do
= f.text_field :title, :class => 'list-input'
.paper-wrapper
= render :layout => 'floating_label', :locals => {:label => 'Army List'} do
%li.first-common.last
#new-section-button.button-div
+ Section
#new-unit-button.button-div
+ Unit
= render :layout => 'shared/paper' do
= f.text_area :list, :class => 'list-input', :id => 'the-list'
= render :partial => 'floating_label', :locals => {:label => 'Tags'}
.paper-wrapper
= render :layout => 'shared/paper' do
= f.text_field :tag_list, :class => 'list-input'发布于 2010-10-18 08:32:01
当我序列化表单时,我发现我在没有意识到的情况下捕获了_method: put参数。
已通过逐个拉出值修复此问题。
https://stackoverflow.com/questions/3929461
复制相似问题