Rails は初めてです。「Rails を使用したアジャイル Web 開発」について言及しています。ここでは、次の構文を使用して、部分的な '_cart' から別の部分的な '_line_item' をレンダリングしています。
<%= render(cart.line_items) %>
私の質問は、なぜ使用して使用cart
しないの@cart
ですか? 違いはなんですか?
Rails は初めてです。「Rails を使用したアジャイル Web 開発」について言及しています。ここでは、次の構文を使用して、部分的な '_cart' から別の部分的な '_line_item' をレンダリングしています。
<%= render(cart.line_items) %>
私の質問は、なぜ使用して使用cart
しないの@cart
ですか? 違いはなんですか?
インスタンス変数@cart
は部分的に使用できないためです_cart
。そのレンダリング ラインはおそらく次のようになります。
<%= render partial: 'cart', locals: {cart: @user.cart} %>
また
<%= render 'cart', :cart => @user.cart %>
したがって、ユーザーのカートはローカル変数として使用できますcart
。
@cart
(おそらく) クラスの特定のインスタンスですが、オブジェクト cart
を参照するパーシャルをレンダリングしています。cart
使用方法は、ビューまたはパーシャルの呼び出し方法によって異なります。
@cart = current_account.cart
コントローラーから呼び出しているすべてのビュー、後続のパーシャル、またはヘルパーで使用できるように、インスタンス変数を定義できます。
またはrender :partial=>'cart_page', :locals => { cart: @account.cart }
、'cart' という名前のパーシャルにのみ変数を渡す呼び出しを行うこともできます (グローバルに使用できないため、@ は使用しません)。
ここで言ったように、 @cart 変数に保存したカートモデルではなく、部分的なカートを使用しているためだと思います。違いは、部分的なカートはビューであり、@cart は変数であるため実際には何でもかまいませんが、ほとんどの場合はカート オブジェクトのモデルです。