質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

763閲覧

if文の条件が思いつかず悩んでいます。「indexページの1ページ目にのみ表示し、それ以外のページでは表示しない」

kawanoonigiri

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2021/09/01 05:32

編集2021/09/01 05:50

前提・実現したいこと

表題の通り、トップページにのみ表示したいコンテンツがあります。
ページネーション機能(kaminari gemを使用)がついており、2ページ目以降にはそのコンテンツを表示しないという動きにしたいです。
条件分岐のif文で表示を分けようと思うのですが、肝心の条件が思いつかず悩んでいます。

該当のソースコードの1行目が問題の箇所です。

該当のソースコード

index.html.erb

ruby

1<%if @store.page == 1 %> 2<div class="top"> 3 <div class="top_text"> 4 5 </div> 6 <div class="top_subtext"> 7 8 </div> 9 <div class="top_search"> 10 <div class="search"> 11 <%= search_form_for @s, url: search_stores_path do |f|%> 12 <% f.label :name_or_address_cont %> 13 <%= f.search_field :name_or_address_cont, placeholder: '店舗名、エリア検索', class: 'search_field' %> 14 <%= button_tag type: 'submit', class: 'search__btn' do %> 15 <i class="fas fa-search"></i> 16 <% end %> 17 <% end %> 18 </div> 19 </div> 20</div> 21<% end %>

application_controller.rb

ruby

1class ApplicationController < ActionController::Base 2 before_action :basic_auth 3 before_action :configure_permitted_parameters, if: :devise_controller? 4 5 def search_store 6 @s = Store.ransack(params[:q]) 7 @stores = @s.result(distinct: true) 8 end 9 10 private 11 def basic_auth 12 authenticate_or_request_with_http_basic do |username, password| 13 username == ENV["BASIC_AUTH_USER"] && password == ENV["BASIC_AUTH_PASSWORD"] 14 end 15 end 16 17 def configure_permitted_parameters 18 devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname]) 19 devise_parameter_sanitizer.permit(:account_update, keys: [:nickname]) 20 end 21end

store_controller.rb

ruby

1class StoresController < ApplicationController 2 before_action :search_store 3 4 def index 5 @store = Store.includes(:user).page(params[:page]).per(6) 6 end 7 8 def new 9 @store = Store.new 10 end 11 12 def create 13 @store = Store.new(post_params) 14 if @store.valid? 15 @store.save 16 redirect_to root_path 17 else 18 render :new 19 end 20 end 21 22 def show 23 @comment = Comment.new 24 @store = Store.find(params[:id]) 25 @comments = @store.comments.includes(:user) 26 end 27 28 def edit 29 @store = Store.find(params[:id]) 30 end 31 32 def update 33 @store = Store.find(params[:id]) 34 if @store.update(post_params) 35 redirect_to store_path(@store) 36 else 37 render :edit 38 end 39 end 40 41 def destroy 42 @store = Store.find(params[:id]) 43 @store.destroy 44 redirect_to root_path 45 end 46 47 def search 48 @results = @s.result.page(params[:page]).per(6) 49 end 50 51 private 52 def post_params 53 params.require(:store).permit(:name, :address, :postal_code, :telephone, :url, :closing_day, :business_hour, :fee, :water, :temperature, 54 :roryu_status, :roryu_time, :air_bath, :break_place, :television, :bgm, :water_depth, images: [] ).merge(user_id: current_user.id) 55 end 56end

情報追加の必要がございましたら対応いたします。
詳しい方いらっしゃいましたらご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/09/01 05:34

・ページネーション機能はどのように実装していますか? ・コントローラーにはどのようなコードを書きました?
kawanoonigiri

2021/09/01 05:51

ページネーション機能がkaminari gemを使用しています。 コントローラーについては質問内に追記いたしましたのでご確認ください。
guest

回答1

0

ベストアンサー

kaminariのReadmeを見てみましょう。.current_pageで現在位置が取れます。

投稿2021/09/01 05:55

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kawanoonigiri

2021/09/01 06:02

素早いご対応誠にありがとうございます。 無事解決いたしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問