[Rails] 상품 일람을 다차원적으로 분류해서 보여주는 과정은요.
6104 단어 JavaScriptRails
전제 조건
이하의 일은 끝났다.끝나지 않으면 기능이 정확한지 확인하기 어렵다.
・ancestry를 사용하여 분류표를 작성한다.
・분류:상품=1:여러 가지 관계가 있다.
· 분류는 3개 등급으로 나뉘는데, 각각의 명칭은 각각 '부모', '자', '손' 이다
・상품모델 카테고리id에서 최하층의 분류 id가 등록됩니다.
・gem kaminari 설치
· 분류 컨트롤러 파일 제작 및 분류 가능한 코드가 적혀 있다.
불안하신 분들은 여기를 눌러주세요.
다음 코드를 썼으면 문제없습니다.
품목별 상품 일람 표시
분류의 상세함을 보고 싶어서 show 동작을 사용합니다.
Show 작업 정의
app/controllers/categories_controller.rb
before_action :set_category, only: :show
def show
@items = @category.set_items
@items = @items.where(buyer_id: nil).order("created_at DESC").page(params[:page]).per(9)
end
private
def set_category
@category = Category.find(params[:id])
end
모델 메소드 정의
app/models/category.rb
has_many :items
has_ancestry
def set_items
# 親カテゴリーだった場合
if self.root?
start_id = self.indirects.first.id
end_id = self.indirects.last.id
items = Item.where(category_id: start_id..end_id)
return items
# 子カテゴリーだった場合
elsif self.has_children?
start_id = self.children.first.id
end_id = self.children.last.id
items = Item.where(category_id: start_id..end_id)
return items
# 孫カテゴリーだった場合
else
return self.items
end
end
@items = @category.items로만 기술됨
상품 모델 categoryid가 최하층의 id를 부여받았기 때문입니다.손자의 경우에만 정보를 얻을 수 있다.
따라서 상술한 바와 같이 부모인지 자식인지 손자인지 구분하는 조건은 순조롭게 진행될 것이다
뷰
app/views/categories/show.html.haml
.items-container
.items-index
.title
= "#{@category.name}の商品一覧"
.title__border
- if @items
%ul.lists
= render "items/item", items: @items
= paginate @items
다른 분류에 대한 링크는 아직 설정되지 않았지만
그거는 또 쓰도록 하겠습니다.
Reference
이 문제에 관하여([Rails] 상품 일람을 다차원적으로 분류해서 보여주는 과정은요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Nyanmaru-12/items/fc9320f41d60d7b2dd10
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
분류의 상세함을 보고 싶어서 show 동작을 사용합니다.
Show 작업 정의
app/controllers/categories_controller.rb
before_action :set_category, only: :show
def show
@items = @category.set_items
@items = @items.where(buyer_id: nil).order("created_at DESC").page(params[:page]).per(9)
end
private
def set_category
@category = Category.find(params[:id])
end
모델 메소드 정의
app/models/category.rb
has_many :items
has_ancestry
def set_items
# 親カテゴリーだった場合
if self.root?
start_id = self.indirects.first.id
end_id = self.indirects.last.id
items = Item.where(category_id: start_id..end_id)
return items
# 子カテゴリーだった場合
elsif self.has_children?
start_id = self.children.first.id
end_id = self.children.last.id
items = Item.where(category_id: start_id..end_id)
return items
# 孫カテゴリーだった場合
else
return self.items
end
end
@items = @category.items로만 기술됨상품 모델 categoryid가 최하층의 id를 부여받았기 때문입니다.손자의 경우에만 정보를 얻을 수 있다.
따라서 상술한 바와 같이 부모인지 자식인지 손자인지 구분하는 조건은 순조롭게 진행될 것이다
뷰
app/views/categories/show.html.haml
.items-container
.items-index
.title
= "#{@category.name}の商品一覧"
.title__border
- if @items
%ul.lists
= render "items/item", items: @items
= paginate @items
다른 분류에 대한 링크는 아직 설정되지 않았지만그거는 또 쓰도록 하겠습니다.
Reference
이 문제에 관하여([Rails] 상품 일람을 다차원적으로 분류해서 보여주는 과정은요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Nyanmaru-12/items/fc9320f41d60d7b2dd10텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)