0
こんにちは、私は私のモデルで、次のコードを持っている:私はすべての製品を一覧表示し、製品のビューにいるときRailsでエラー通知を表示する方法は?
class Product < ActiveRecord::Base
before_destroy :check_tasks
has_many :tasks, :order => 'created_at DESC'
validates :name, :presence => true
belongs_to :sprint
validates :sprint_id, :presence => true
def check_tasks
if self.tasks.any?
errors.add_to_base "Product has tasks and cannot be destroyed."
return false
end
end
end
が、私は、ビューの上にエラーメッセージを表示したいと思い、毎回誰かタスクがリンクされている製品を削除しようとします。私はメッセージを求めます:製品はタスクを持っており、破棄することはできません。
以下のコードはどのようなコードですか?ビューは製品ビューで、views/productsフォルダーにあります。
ありがとうございました!
<h1>Listing products</h1>
<%= link_to 'New Product', new_product_path %>
<table>
<tr>
<th>Name</th>
<th>Description</th>
<th>Sprint</th>
<th></th>
<th></th>
<th></th>
</tr>
<% if not @messages_rendered -%>
<% if flash[:error] -%>
<p class='error'><%=h flash[:error] %></p>
<% end -%>
<% if flash[:notice] -%>
<p class='notice'><%=h flash[:notice] %></p>
<% end -%>
<% end -%>
<% @messages_rendered = true -%>
<% @products.each do |product| %>
<tr>
<td><%= product.name %></td>
<td><%= product.description %></td>
<td><%= product.sprint.name %></td>
<td><%= link_to 'Show', product %></td>
<td><%= link_to 'Edit', edit_product_path(product) %></td>
<td><%= link_to 'Destroy', product, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br />
!ありがとう!唯一のことは、私はbaseProductにタスクがあり、削除できないということです。私はテキストの背後にある "ベース"をどのように削除できるか知っていますか? – Runy
@Runy私は、あなたはルビー1.8を使用していると思いますか?私はコードを更新して、これを試してみてください。 –
はい私はルビーバージョン1.8.7とレール3.0.5を手に入れました。私は更新したコードを試しましたが、うまくいきませんでした。奇妙なのは、 "ベース"が表示され続けることです。私はほとんどそこにいる。私はそれを知っている。 – Runy