0

我有以下代码使用复选框删除多个博客文章,但是当用户单击“删除所选”而不选择任何博客文章时,它会出错。如何确保按钮保持禁用状态或显示未进行选择的弹出错误?为了形象化,这里是我的多重删除的样子(http://i.imgur.com/3mfglyI.png

路线.rb:

  resources :blog_posts do
    collection do
      delete 'destroy_multiple'
    end
  end

index.html.erb:

<%= form_tag destroy_multiple_blog_posts_path, method: :delete do %>
<table>
...
<td><%= check_box_tag "blog_posts[]", blog_post.id %></td>
...
</table>
<%= submit_tag "Delete selected" %>
<% end %>

blog_posts_controller.rb:

def destroy_multiple

  BlogPost.destroy(params[:blog_posts])

  respond_to do |format|
    format.html { redirect_to blog_posts_path }
    format.json { head :no_content }
  end

end
4

1 回答 1

1

只需检查参数是否有值,您可以这样做:如何测试参数是否存在于rails中

如果您不喜欢这种方法,您也可以使用错误消息来挽救它,但我强烈建议您通过检查参数是否具有值来做到这一点。

begin
    BlogPost.destroy(params[:blog_posts])
rescue
     #this will fire if begin block throws an error, so just throw your error at the user here
ensure
    #this_code_is_always_executed, if you want to ensure something happens no matter what
end
于 2013-08-22T12:36:55.253 回答