【发布时间】:2021-09-29 10:30:34
【问题描述】:
我正在尝试添加一个按钮,用于根据t.boolean "is_approved" 状态删除所有未批准的帖子。由于一些垃圾邮件问题,我通常有数百个帖子。我一直在尝试如下,但似乎无法让路线适用于不适用于特定帖子的操作。
manage_posts.html.erb
<p><%= link_to 'delete all unapproved', destroy_unapproved_posts_url, method: :delete, data: { confirm: 'Are you sure?' }, class: "btn-admin-action" %></p>
posts_controller.rb
def destroy_unapproved
Post.where(is_approved != true).destroy_all
respond_to do |format|
format.html { redirect_to manage_posts_url, notice: 'Unapproved Posts are destroyed.' }
format.json { head :no_content }
end
end
routes.rb
resources :posts do
member do
put 'destroy_unapproved', to: "posts#destroy_unapproved"
end
end
【问题讨论】:
-
当您发送
delete请求时,为什么要put 'destroy_unapproved', to: "posts#destroy_unapproved"?在路由文件中应该是delete 'destroy_unapproved', to: "posts#destroy_unapproved"
标签: ruby-on-rails routes