Rails 5资源路由错误仅在生产中

时间:2018-08-03 21:02:16

标签: ruby-on-rails ruby ruby-on-rails-5 phusion pony

我有一个resources :products定义的完全正常的资源。

在我的小马笔记本电脑上,Update在开发中工作正常。生产是在我没有很多控制权的服务器上使用phusion进行的。每当我尝试更新时,它都会神秘地重定向,给我一个404。这就是日志中的内容:

64d8] Completed 200 OK in 57ms (Views: 9.6ms | ActiveRecord: 2.0ms)
I, [2018-08-03T13:42:22.444552 #2652091]  INFO -- : [dde252e5-5750-4f63-9fd2-b02a882c864c] Started PATCH "/products/578" for > 154.20.31.78 at 2018-08-03 13:42:22 -0700
F, [2018-08-03T13:42:22.445282 #2652091] FATAL -- : [dde252e5-5750-4f63-9fd2-b02a882c864c]
F, [2018-08-03T13:42:22.445332 #2652091] FATAL -- : [dde252e5-5750-4f63-9fd2-b02a882c864c] ActionController::RoutingError (No route matches [PATCH] "/578"):

如您所见,它似乎正在改变我无法访问的地方的路线。

编辑:表单开始:

<%= form_with model: product, local: true do |form| %>

并正确填充/ products / id / edit。这将产生html:

<form enctype="multipart/form-data" action="/products/578" accept-charset="UTF-8" method="post">
  <input name="utf8" type="hidden" value="&#x2713;" />
  <input type="hidden" name="_method" value="patch" />
  <input type="hidden" name="authenticity_token" value="g+oaySVsX4QLZSvII9xbEZo3j0lGChrXSHhMUdUyJ+3eZEUK6iC6QK4sa1SkdBX6f2vvH2HXlN+rR5lzQOmDWA==" />

这是控制器中的相关方法,从测井实验来看,似乎从未触及过。奇怪的是,触发format.js的表单运行得很好。

def update
  verify_admin
  respond_to do |format|
    @product.update(product_params)
    if @product.save
      save_picture if params[:product][:picture_file]
      if params[:commit] == 'Add/Edit'
        format.html { redirect_to products_url(@product) }
      else
        format.js { render inline: 'location.reload()' }
      end
    else
      format.html { render :edit }
    end
  end
end

0 个答案:

没有答案