【发布时间】:2016-05-24 12:46:28
【问题描述】:
我花了很多时间,但我不知道如何解决这个问题。
我需要发送 PUT 请求,我想通过单击复选框使用 ajax 来完成它
我的 HAML
- subcate.products.each do |product|
= check_box_tag 'published', product.id, product.published, id: '', |
data: { |
remote: true, |
url: url_for(controller 'products', action: :set_published, id: product.id, method: 'PUT'), |
}
我的路线
namespace :admin do
resources :categories
resources :subcategories
resources :posts
resources :products do
resources :images, only: [:create, :destroy]
put 'set_published', to: 'products#set_published'
end
end
我的控制器
class Admin::ProductsController < AdminController
before_action :set_product, only: [:show, :edit, :update, :destroy]
def set_published
"test"
end
end
当我输入时
rake routes
我明白了
admin_product_set_published PUT /admin/products/:product_id/set_published(.:format) admin/products#set_published
我的复选框在主管理页面上,当我想进入时,我得到了
No route matches {:action=>"set_published", :controller=>"admin/products", :id=>49, :method=>"PUT"}
但我尝试从控制台测试控制器
Admin::ProductsController.new.set_published
我明白了
=> "test"
我不知道路线有什么问题
【问题讨论】:
标签: ruby-on-rails ruby controller routes