前提・実現したいこと
表題の通り、トップページにのみ表示したいコンテンツがあります。
ページネーション機能(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
情報追加の必要がございましたら対応いたします。
詳しい方いらっしゃいましたらご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー