Hi --
Hi all
I'm creating a shop page. I have a cart model that looks like the following:
class Cart attr_reader :line_items
def get_line_item id @line_items.each do |l| return l if l.id == id end end
def get_line_item(id) @line_items.find {|l| l.id == id } end
def initialize @line_items = end
def empty! initialize end
def empty? return true if @line_items.empty? false end
def empty? @line_items.empty? end
end
And I have some helper methods in application_helper.rb:
module ApplicationHelper def find_cart session[:cart] ||= Cart.new
It seems a little odd to me to be manipulating the session data in a view (or view helper). You might want to find a way to juggle things so that this is back in the controller.
end
def empty_cart find_cart.empty! end
def cart_empty? return true if find_cart.empty? end
def cart_empty? find_cart.empty? end
end
Then I want to display a partial form within the layout application.rhtml but only if the cart is not empty:
<%= render(:partial => 'warenkorb/warenkorb', :locals => {:cart => find_cart}) unless cart_empty? %>
But this displays me the following error:
undefined method `empty?' for #<Cart:0x230020c @line_items=>
Where does this error come from? I just don't get it, the Cart object is instantiated when calling find_cart, and the Cart class definitely does have a method called "empty?"!
I'm afraid I can't duplicate your error. I've tried to make up for it
with a few code hints (see above) Could the problem have
something to do with caching and then changing the model file?
David