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 2011-12-19 21:38:38
@Runy我想,你使用紅寶石1.8,對吧?我已經更新了代碼,試試這個。 – 2011-12-20 07:01:26
是的,我有紅寶石版本1.8.7和軌道3.0.5。我試過你更新的代碼,但沒有奏效。奇怪的是,「基地」不斷出現。我快到了。我知道。 – Runy 2011-12-21 18:01:29