ancestryの表示方法
ancestryの使い方は見かけますが、表示のさせ方はなかったので備忘録として投稿いたします。
ancestryについてはこちらの記事でご確認ください。
https://atora1992.hatenablog.com/entry/2019/07/08/215444
作成の都合上、viewファイルはhamlで記述しております。
まずはcontrollerを記載します。
productテーブルから商品情報を取得、
その後にcategoryテーブルより親要素を取得します。
省略
def show
@product = Product.find(params[:id])
@parents = Category.where(ancestry:nil)
end
省略
private
def product_params
params.require(:product)
end
end
こちらがviewファイルになります。
@parentsをeachで分けていきます。
そしてproductテーブルのcategories_idとcategoryテーブルのidが一致する場合、表示させる様に記述します。
//親要素だけの場合
- @parents.each do |parent|
-if @product.categories_id == parent.id
= link_to '#' do
= parent.name
%br
//子要素までの場合
- parent.children.each do |child|
-if @product.categories_id == child.id
= link_to '#' do
= parent.name
%br
= link_to '#' do
= child.name
%br
//孫要素までの場合
- child.children.each do |grandchild|
-if @product.categories_id == grandchild.id
= link_to '#' do
= parent.name
%br
= link_to '#' do
= child.name
%br
= link_to '#' do
= grandchild.name
%br
こちらで表示が完了です。
今回、表示までの内容ですので、リンク先は未記載です。
ご了承ください。
Author And Source
この問題について(ancestryの表示方法), 我々は、より多くの情報をここで見つけました https://qiita.com/shimpex/items/f1e6f30b59845e41735e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .