Ruby on rails 4 如何在rails 4应用程序中删除记录
我想从maodel中删除一条记录,但我有一个奇怪的行为: 当我从非空列表中删除一条记录时,它工作正常,但当该列表中仍然只有一条记录,并且我尝试删除它时,它会生成以下错误: 在paniers_controller.rb中:Ruby on rails 4 如何在rails 4应用程序中删除记录,ruby-on-rails-4,Ruby On Rails 4,我想从maodel中删除一条记录,但我有一个奇怪的行为: 当我从非空列表中删除一条记录时,它工作正常,但当该列表中仍然只有一条记录,并且我尝试删除它时,它会生成以下错误: 在paniers_controller.rb中: def enlever @p = Panier.find(params[:id]) @book = Book.where( id: @p.book_id).first if @p @book= Book.update(@p.book_id, nbr_ex
def enlever
@p = Panier.find(params[:id])
@book = Book.where( id: @p.book_id).first
if @p
@book= Book.update(@p.book_id, nbr_exemplaires: @p.quantity)
@p= Panier.destroy(@p.id)
redirect_to detail_path
end
end
在paniers/detail.html.erb中
<tr><td>Reference du livre</td><td>prix du livre</td><td>Quantité</td><td>Services</td></tr>
<% for p in @panier %>
<tr>
<td><%= p.book_id %></td><td><%= p.price%> $</td><td><%= p.quantity %></td><td><%= link_to 'enlever du panier', enlever_path(p), data: { confirm: 'Are you sure?' } %></td></tr>
<% somme +=p.price * p.quantity %>
<%end %>
在routes.rb中
获取“panier/enlever/:id”=>“paniersenlever”,如::enlever
我得到的错误是:
找不到“id”=23的窗格
在这方面:
@p=窗格。findparams[:id]
但是,尽管显示了此错误,记录还是从数据库中删除了如果您想在视图中对@panier进行复数化,请检查您是否正在使用窗格列表而不是单个窗格初始化@panier-类似于:
# in paniers_controller.rb
def detail
@panier = Panier.all
end
# in paniers/detail.html.erb
<% for p in @paniers %>
如果你想销毁@p,只需拨打@p.destroy。