Dave Thomas の本、 「Agile Web Development with Rails」、第 4 版を読んでいました。Cartという名前のクラス内で、彼は、クラスCartとLineItemの間の関係によって提供される「line_items」という名前の属性を呼び出しました。
Cartクラスでこの属性を使用するメソッド内では、インスタンスの属性を呼び出すときに使用される「@」なしで属性が呼び出されます。誰かが私になぜこれがうまくいくのか教えてもらえますか? 彼が「@」記号を使っていると思っていたからです。コードを以下に示します。
class Cart < ActiveRecord::Base
has_many :line_items, :dependent => :destroy
def add_product(product_id)
#In this line below, I was expecting @lineitems.find_by .....
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)
end
current_item
end
end