簡體   English   中英

從我的Rails表單中,我收到404錯誤。 有人知道如何正確設置此AJAX表單嗎?

[英]From my Rails form, I'm getting a 404 Error. Anyone know how to properly set up this AJAX form?

= form_tag :url => job_path(@job.id), :method => :post, :remote => true, :id => @job.id, do
        = submit_tag 'Save', :class => 'confirm-time'

這就是我實例化的方式。 我只是在那兒扔了一堆參數。 其中大多數可能不是必需的。

我的jQuery電話:

    $(".confirm-time").live("click", function(){
      $.post($(this).parents('form').attr('action'), function(){} );
      return false;
    });

我的回答是:

Routing Error

No route matches "/jobs/171"

但這絕對是一條路線,因為它可以正常工作。 有人知道我可能會缺少什么嗎?

我的路線:

resources :jobs

有很多與此相關的工作-與工作相關。 但是我認為這足夠了,因為這是def udpate的簡單文章

我的日志:

Started POST "/jobs/171?method=post&remote=true&url=%2Fjobs%2F171" for 127.0.0.1 at 2012-04-03 14:09:23 -0400
  SQL (0.7ms)  SHOW TABLES
  SQL (0.9ms)  SHOW TABLES
[Barista] Compiling all scripts for barista
[Barista] Compiling all coffeescripts
[E20::Ops::Middleware::TransactionIdMiddleware] Transaction ID: e8c81711-3d8b-438e-b6d2-ba77f1bda40d

ActionController::RoutingError (No route matches "/jobs/171"):


Rendered /Users/elephanttrip/.rvm/gems/ruby-1.9.2-p318@shasta/gems/actionpack-3.0.10/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.0ms)

您的應用程序命中的URL完全錯誤,這應該是您沒有正確使用form_tag幫助程序的第一個線索:

/jobs/171?method=post&remote=true&url=%2Fjobs%2F171

如您所見,整個選項哈希被用作URL參數,因為form_tag的第一個參數是URL。

它看起來應該像這樣:

form_tag job_path(@job.id), :method => :post, :remote => true, :id => @job.id do

您還會濫用*_path幫助器; 您應該使用job_path(@job)或只是傳入Job對象本身:

form_tag @job, :method => :post, :remote => true, :id => @job.id do

您還使用了錯誤的方法。 POST用於創建新對象,而您的表單正在更新作為PUT請求的現有對象。 您要么要使用:method => :put要么(最好)一起放下form_tag ,並使用form_for @job ,它將根據您傳遞給它的對象為您找出所有信息:

form_for @job, :remote => true do |form|

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM