2012-04-04 82 views
0

我有以下形式:形式提交两次:远程=>真正的Rails 3.2

= form_for([current_user,@company], :remote => true) do |f| 
    -if @company.errors.any? 
    #error_explanation 
     %h2= "#{pluralize(@company.errors.count, "error")} prohibited this company from being saved:" 
     %ul 
     - @company.errors.full_messages.each do |msg| 
      %li= msg 
    =f.label :name 
    =f.text_field :name 
    =f.label :address 
    =f.text_area :address, :rows => 3, :cols => 5 
    =f.label :phone_number 
    =f.text_field :phone_number 
    .actions 
    = f.submit 'Save' 

当我点击保存按钮,我可以看到我的服务器日志中folllowing:

Started POST "https://stackoverflow.com/users/1/companies" for 127.0.0.1 at 2012-04-04 21:27:50 +0700 
Processing by CompaniesController#create as JS 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"6ZH9hAUuf5ZTCf8Loc4M/IIl/Etzm7uDGoYbIgCTvhI=", "company"=>{"name"=>"test", "address"=>"test", "phone_number"=>"5454543"}, "commit"=>"Save", "user_id"=>"1"} 
    (0.2ms) BEGIN 
    SQL (25.2ms) INSERT INTO "companies" ("address", "name", "phone_number", "url", "user_id") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["address", "test"], ["name", "test"], ["phone_number", "5454543"], ["url", nil], ["user_id", nil]] 
    (1.6ms) COMMIT 
    Rendered companies/create.js.erb (0.7ms) 
Completed 200 OK in 41ms (Views: 8.1ms | ActiveRecord: 27.0ms) 


Started POST "https://stackoverflow.com/users/1/companies" for 127.0.0.1 at 2012-04-04 21:27:50 +0700 
Processing by CompaniesController#create as JS 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"6ZH9hAUuf5ZTCf8Loc4M/IIl/Etzm7uDGoYbIgCTvhI=", "company"=>{"name"=>"test", "address"=>"test", "phone_number"=>"5454543"}, "commit"=>"Save", "user_id"=>"1"} 
    (0.7ms) BEGIN 
    SQL (2.7ms) INSERT INTO "companies" ("address", "name", "phone_number", "url", "user_id") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["address", "test"], ["name", "test"], ["phone_number", "5454543"], ["url", nil], ["user_id", nil]] 
    (12.8ms) COMMIT 
    Rendered companies/create.js.erb (0.1ms) 
Completed 200 OK in 30ms (Views: 10.5ms | ActiveRecord: 16.1ms) 

这意味着表单正在提交两次。 我已从我的公共目录中删除资产文件夹。我也检查了页面上呈现的HTML,并没有包含jquery或其他依赖关系。

为什么提交两次?

回答

4

我曾运行过rake资源:预编译并在开发模式下运行我的服务器。解决办法是耙资产:干净,然后重新启动服务器

1

我对这种解决方法:

rake assets:precompile 
with //= require jquery_ujs in your app/assets/javascripts/application.js 

耙后,取出线from app/assets/javascripts/application.js并启动服务器。 现在它应该按预期工作。