Rails GET 方法被调用而不是 DELETE

Aru*_*run 1 ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我正在尝试使用 :method => :delete 删除记录,但它改为调用 GET 。它重定向到 show 并显示 404 not found。但如果我返回并刷新,该记录实际上被删除了。

<% @photos.each do |photo| %>
<div class='photogallery'>
<%= link_to image_tag(photo.image_url(:thumb)) if photo.image? %>
<div class="name"><%= photo.caption %></div>
<div class="actions">
<%= link_to "edit", edit_admins_photogallery_path(photo) %> |
<%= link_to "remove",admins_photogallery_path(photo), :method => 'delete',:confirm => 'Are you sure?' %> |

</div>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

应用程序.js

//= require jquery
//= require jquery_ujs
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require dataTables/jquery.dataTables
//= require bootstrap
//= require bootstrap-select
//= require jquery.timepicker
//= require jquery.ui.tabs
//= require jquery.ui.datepicker
//= require jquery.ui.accordion
//= require jquery.ui.autocomplete
//= require strftime-min.js
//= require turbolinks
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

我已将其包含在我的布局文件中并且加载良好。

<%= csrf_meta_tag %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,几天前它还工作得很好,现在它已经停止为所有控制器工作。

编辑:routes.rb

devise_for :users
root 'index#index'
resources :reprint
devise_scope :user do
get "/admins/", :to => "devise/sessions#new"
end
namespace :admins do
resources :location,:dashboard,:lodge,:room,:booking,:rate_calendar,:photogallery    
end  
resources :index do 
collection do
match 'search' => 'index#search', via: [:get, :post], as: :search
match 'location' => 'index#location', via: [:get, :post], as: :location
match  'add_cart' => 'index#add_cart', via: [:get, :post], as: :add_cart
end
end
resources :room_availability
Run Code Online (Sandbox Code Playgroud)

编辑:photogallery_controller.rb

def destroy
  @photos = Photogallery.find(params[:id])
 if @photos.destroy
  redirect_to admins_photogallery_path, notice: "Photo was successfully destroyed."
 else
  render :action => 'index'
  flash[:error] = "Photo could not be deleted."
 end
end
Run Code Online (Sandbox Code Playgroud)

小智 6

我遇到了同样的问题,当我将 link_to 更改为 button_to 时,一切都开始正常工作。也许是因为 link_to 主要用于 GET 调用,button_to 主要用于 POST 调用(在我的例子中也用于 DELETE)。