BETA

solidus内のカテゴリーと商品のidをcontrollerを使わずにテンプレートに呼び出して表示させる

投稿日:2020-05-17
最終更新:2020-05-17

はじめに

solidus内のtaxonomy,taxon,productのidをviewのlink_toに使用したい場合について。
当初は変更前で実装していたのですが、コントローラーを使わずに直接テンプレートに呼び出せると知ったので備忘録として記します。
以下ではtaxonomy,product共に一番最初のカテゴリー、商品を取得する実装にしてあります。

変更前

コントローラーでインスタンス変数を定義してからビューでidを呼び出す

def index  
  @taxonomy = Spree::Taxon.roots.first  
  @product = Spree::Product.first  
end  

# taxonomyのidをlink_toで使用する場合  
link_to "Categories", hogehoge_category_path(@taxonomy.id)  

# productのidをlink_toで使用する場合  
link_to "Product", hogehoge_product_path(@product.id)  

変更後

テンプレート内で直接idを呼び出す


# taxonomyのidをlink_toで使用する場合  
link_to "Categories", hogehoge_category_path(Spree::Taxon.roots.first.id)  

# productのidをlink_toで使用する場合  
link_to "Product", hogehoge_product_path(Spree::Product.first.id)  

おわりに

テンプレート内で直接idを呼び出すことで、controllerでインスタンス変数を記述しなくてもよくなり、簡潔になりました。

Qiitaでも同様の記事を書いてます。

https://qiita.com/naocan/items/9a9eb8ac74d52eef5f11

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

渋谷のスタートアップ企業で働くRailsエンジニアの技術ブログ Qiita: https://qiita.com/naocan

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう