首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >路由从一个页面失败,从另一个页面成功

路由从一个页面失败,从另一个页面成功
EN

Stack Overflow用户
提问于 2010-10-14 09:45:59
回答 1查看 111关注 0票数 0

我有一段javascript可以触发一个ajax请求,请求的结果被加载到一个弹出对话框中。

这在所有情况下都是相同的javascript,但在一种情况下,路由失败。

在new_army_list页面中:

代码语言:javascript
运行
复制
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页面中:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
function preview() {
  $.facebox(function() {
          var post_data = $('form').serialize();
          $.post('/army_lists/preview', post_data, function(data) {
                   $.facebox(data);
            });
        });
  }

知道是怎么回事吗?我不知道从哪里开始调试。

更新:路由:

代码语言:javascript
运行
复制
preview_army_list POST   /army_lists/preview(.:format) {:controller=>"army_lists", :action=>"preview"}

UPDATE2:视图

application.html.haml

代码语言:javascript
运行
复制
!!! 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

代码语言:javascript
运行
复制
= render :partial => 'form'

new.html.haml

代码语言:javascript
运行
复制
= render :partial => 'form'

_form.html.haml

代码语言:javascript
运行
复制
- 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'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-18 08:32:01

当我序列化表单时,我发现我在没有意识到的情况下捕获了_method: put参数。

已通过逐个拉出值修复此问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3929461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档