我想从模型中获取“current_item.quantity”以在视图中使用 - 即我希望能够将“当前在您的购物车中的 (x) 个项目”放在应用程序布局视图中。我该怎么做呢?尝试了我能想到的“@total_current_items”等的每一种组合。谢谢!!
如果有帮助,这是模型代码:
class Cart < ActiveRecord::Base
has_many :line_items, dependent: :destroy
def add_product(product_id)
current_item = line_items.find_by_product_id(product_id)
if current_item
current_item.quantity += 1
else
current_item = line_items.build(:product_id => product_id)
current_item.price = current_item.product.price
end
current_item
end
def total_price
line_items.to_a.sum { |item| item.total_price }
end
def decrease(line_item_id)
current_item = line_items.find(line_item_id)
if current_item.quantity > 1
current_item.quantity -= 1
else
current_item.destroy
end
current_item
end
def increase(line_item_id)
current_item = line_items.find(line_item_id)
current_item.quantity += 1
current_item
end
end
根据要求,这是视图代码(相关部分):
<% if @cart %>
<%= hidden_div_if(@cart.line_items.empty?, id:'cart') do %>
<div class="row-fluid">
<a class="btn btn-success menu" id="menubutton" href="<%= cart_path(session[:cart_id]) %>">View Cart</a>
</div>
<div class="row-fluid">
You have <%= pluralize(@total_current_items, "item") %>in your cart.
</div>
<% end %>
<% end %>
</div>
编辑:
我尝试将以下内容放入应用程序帮助程序中,但它不起作用。它要么出现未定义的方法/变量错误消息,要么显示“您的购物车中有 0 件商品”,即使那里有商品也是如此。我已经尝试将@total_items、total_items 等放在视图中引用它,但我是 Rails 新手,不知道该怎么做才能让它工作!
def total_items
@line_items = LineItem.find(params[:id])
@total_items = @line_items.to_a.sum { |item| item.total_quantity}
end
我哪里错了?