Rails: 빵 찌꺼기 목록의 2페이지 뒤에 "X페이지"를 표시하는 방법
8464 단어 Rails
교재로 하면 전달이 좀 어려워요.
ページ名
ページ名 > #{ページ数}ページ目
컨디션
자작한 콘텐츠 입소문 서비스https://github.com/yuki0920/supplebox를 가져온 프로젝트 일람페이지(/productts/index)를 전제로 설명한다.
또한 페이지 단자 기능
kaminari
을 가정하고 빵 찌꺼기 목록 기능gretel
에서 실현했다.# Gemfile
gem 'kaminari'
gem 'gretel'
현상
첫 번째 페이지와 두 번째 페이지 뒤에 페이지 이름(항목 목록)이 표시됩니다.
gretel의 정통적인 용법을 사용하다.
config/breadcrumbs.rb
crumb :products do
link 'アイテム一覧', products_path
parent :root
end
app/views/products/index.html.haml- breadcrumb :products
X 페이지 표시
프로파일에 추가합니다.parent에서 제품을 설정합니다.두 번째 매개 변수로 페이지 수를 받아들여 페이지로 삼다
페이지를 사용하여 페이지 수를 표시합니다.
두 번째 매개변수에서 받은 값을 README의 샘플 세트에 표시할 수 있습니다.
config/breadcrumbs.rb
crumb :products do
link 'アイテム一覧', products_path
parent :root
end
# 追記
crumb :products_pagination do |page|
link "#{page}ページ目"
parent :products
end
app/views/products/index.html.haml- breadcrumb :products_pagination params[:page]
소스 View 템플릿을 호출할 때 breadcrumb 메서드의 매개 변수는 주의할 필요가 있습니다.카미나리에서 페이지 수는 조회 매개 변수로 전파(예를 들어
/products?page=2
하기 때문에 params[:page]
에서 페이지 수를 두 번째 매개 변수로 전송한다.이렇게 하면 1페이지와 2페이지 이후에 빵 찌꺼기 목록에 페이지 수를 표시할 수 있다.
그런데 첫 페이지에 문제가 있었어요.
params[:page]
는 nil이고 Home › アイテム一覧 › ページ目
로 표시됩니다.1페이지와 2페이지 이후의 상황으로 나뉜다
따라서
param[:page]
의 값을 사용하여 1페이지와 2페이지 다음에 구분한다.app/views/products/index.html.haml
- if params[:page].nil? || params[:page] == 1
= breadcrumb :products
- else
= breadcrumb :products_pagination, params[:page]
이렇게 하면 당초의 목표를 만족시킬 수 있다.ページ名
ページ名 > #{ページ数}ページ目
팩시밀리
View 파일에 논리를 쓰면 전망이 나빠지기 때문에 이를 방법화한 후 조수에게 잘라냅니다.
app/helpers/application_helper.rb
def breadcrumb_pagination
if params[:page].nil? || params[:page] == 1
breadcrumb :products
else
breadcrumb :products_pagination, params[:page]
end
end
호출원도 조수가 정의한 방법으로 수정됩니다.이만 마치겠습니다.
app/views/products/index.html.haml
- breadcrumb_pagination
보충(System Spec)
빵 부스러기 명세서의 설치에 관해서 나는 아래의 테스트를 썼고 규격을 보증했다.
빵 찌꺼기 리스트와 관련된 실크만 발췌했기 때문에 분위기만 전달한다면.
역시 테스트를 쓰면 팩스가 순조롭게 진행될 거야!
spec/system/products_spec.rb
# frozen_string_literal: true
require 'rails_helper'
describe 'アイテム', type: :system do
describe '一覧機能' do
before do
create_list(:product, 13)
end
it 'ユーザーはアイテム一覧を閲覧できること' do
visit products_path
expect(page).to have_content 'Home › アイテム一覧'
expect(page).to_not have_content 'Home › アイテム一覧 › 1ページ目'
expect(page).to have_selector '.pagination'
within '.pagination' do
click_link '2'
end
expect(page).to have_content 'Home › アイテム一覧 › 2ページ目'
within '.breadcrumbs' do
expect(page).to have_link 'アイテム一覧' ,href: products_path
end
end
end
end
Reference
이 문제에 관하여(Rails: 빵 찌꺼기 목록의 2페이지 뒤에 "X페이지"를 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuki_0920/items/154576d9660665bc7802텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)