0

製品とその付属品が同じオブジェクトで必要な状況です。私は次のコードで製品を手に入れました:

@products = Product.all

これで問題ありません。同じオブジェクトの各製品の付属品を取得するために、次のことを行いました。

@products.each do |product|
   @product.accessories = Product.find_by_parent_id(product.id)
end

私はこれを試しましたが、@products を呼び出すと、製品のみがあり、アクセサリはありません。

モデルでは、私は

attr_accessor :accessories
def accessories=(test)
   accessories = test
end

エラーは発生していませんが、残念ながらアクセサリも取得していません。これはアクセサリーを入手する正しい方法ですか?またはこれを達成する他の方法はありますか?私が正しい方法でそれをしているなら、私はどのような間違いをしていますか?

前もって感謝します。

4

2 に答える 2

1

実際、Ruby クラスで定義する場合attr_accessor、特定の動作がない限り、属性の set メソッドをオーバーライドする必要はありません。getattr_accessor :accessoriesメソッドと set メソッドの両方を作成します。

しかし、あなたの間違いは、属性の値がで始まるインスタンス変数に格納されるのでは@accessoriesなく、データを変数に書き込む必要があることだと思いますaccessories@

于 2013-09-15T17:55:07.993 に答える