我正在处理带有购物车和line_items的订单应用。在购物车中删除line_item时遇到问题。在单击删除项目时,没有任何反应。谁能说出来,我哪里错了? 我的订单中的cart.html.erb
<% @order.line_items.each do |item| %>
<%= link_to "remove item", item, :method => :delete, :confirm => "Are you sure?",:remote => true %>
<% end %>
我的订单管理员有:
def cart
@order = current_or_guest_user.orders.includes(:line_items=>[:product]).last
end
我在line_items控制器中定义了删除项方法:
def destroy
line_item.destroy
redirect_to cart_orders_path
end
订单模型是:
belongs_to :user
attr_accessible :completed_at, :email, :item_total, :number, :payment_state, :payment_total, :special_instructions, :state, :total
has_many :line_items, :dependent => :destroy
订单项模型是:
belongs_to :product
belongs_to :order
attr_accessible :price, :quantity, :product_id
任何人都可以帮助我吗?
答案 0 :(得分:1)
您的代码中存在多个不一致。首先,我不知道您是否只是丢失了一段代码,但是您没有加载要删除的line_item:
def destroy
@line_item = LineItem.find(params[:id])
@line_item.destroy
redirect_to cart_orders_path
end
其次,您指定:remote =&gt;在您的销毁链接上为true,这会启用AJAX模式,但之后您只需在您的销毁操作中重定向。
答案 1 :(得分:0)
首先找到要销毁的对象
def destroy
line_item = LineItem.find(params[:id])
line_item.destroy
redirect_to cart_orders_path
end
答案 2 :(得分:0)
def destroy
print "Line item destroy method called"
line_item.destroy
redirect_to cart_orders_path
end
之类的事情
然后尝试单击“删除项目”链接。是否在服务器日志中打印了“调用行项目销毁方法”字符串?