2009-08-22 17 views
0

このコードでは、複数の項目を一度に削除する機能をユーザーに与えるチェックボックスがありますが、項目をチェックせずに削除ボタンを押すとエラーが表示されます:レールでコントローラに送信する前に値を確認する

<% form_for :product , :url => { :action => :delete_selected } do %> 
<table border="1px"> 
    <tr> 
     <th> 
      Select 
     </th> 
     <th> 
      Image 
     </th> 
     <th> 
      Product Name 
     </th> 
     <th> 
      Product Description 
     </th> 
     <th> 
      Product Price 
     </th> 
     <th> 
      Categories 
     </th> 
     <th colspan="3"> 
      Actions 
     </th> 
    </tr> 
    <% @products.each do |p| %> 
    <tr> 
     <td> 
      <%= check_box_tag "product_ids[]", p.id, false, :id => "product_#{p.id}" %> 
     </td> 
     <td> 
      <%= image_tag p.photo.url(:thumb) , :alt => "#{p.name}" %> 
     </td> 
     <td> 
      <%= link_to "#{p.name}" , edit_product_path(p) %> 
     </td> 
     <td> 
      <%=h truncate(p.description.gsub(/<.*?>/,''),:length => 80) %> 
     </td> 
     <td> 
      <%=h p.price %> 
     </td> 
     <td> 
      <% for category in p.categories.find(:all) %> 
      <%= link_to "#{category.name}" , category_path(category.id) %> 
      <% end %> 
     </td> 
     <td> 
      <%= link_to 'Show' , product_path(p) %> 
     </td> 
     <td> 
      <%= link_to 'Edit', edit_product_path(p) %> 
     </td> 
     <td> 
      <%= link_to 'Remove', product_path(p), :confirm => "Are you really want to delete #{p.name} ?", :method => 'delete' %> 
     </td> 
     <% end %> 
    </tr> 
</table> 
<div id="products_nav"> 
    <%= link_to "Add a new Product" , new_product_path %> 
    <%= link_to "Add a new Category" , new_category_path %> 
    <%= link_to "Category page" , categories_path %> 
    <%= submit_tag "Remove selected items" , :confirm => "Are you really want to delete these items ?" %> 
</div> 
<% end %> 
  1. 私は、コントローラに送信する前にこれをチェックし、ユーザに警告を与えるか、それはコントローラで行う必要がありますができますか?

  2. 複数のアイテムを一度に編集する別の方法を追加したい場合、このフォームでこれを行うことは可能ですか?私はこれが1つのフォームに対して異なるアクションを持つことが可能であることを意味しますか?

答えて

1

少なくともRails 2.3を使用している場合は、ネストされたフォームを見てください。親フォームの関連オブジェクトに「削除」チェックボックスを追加するヘル​​パーが含まれています。また、それぞれの関連項目を編集するためのフォームも表示されます。

http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes

http://jimneath.org/2008/09/06/multi-model-forms-validations-in-ruby-on-rails/