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

パラメータに値があるかどうかを確認するだけです。これを行う方法は次のとおりです。パラメータがレールに存在するかどうかをテストする方法

このアプローチが気に入らない場合は、エラー メッセージを表示してレスキューすることもできますが、param に値があるかどうかを確認することを強くお勧めします。

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 に答える