LoginSignup
0
0

More than 3 years have passed since last update.

rails 発展その1 ルートパス ページネーション  データの並び替え 部分テンプレート

Last updated at Posted at 2019-11-07

ルートパス

今までは、local:host3000/コントローラ名
又はlocal:host3000/コントローラ名/アクション名でページに遷移していたが
local:host3000だけで初期ページに移動するようにできるようにする。

routes.rb
  Rails.application.routes.draw do
    root  'コントローラ名#アクション名'
  end

 # 例 root 'home#index'

データの並び替え

コントローラーで取得したデータの並び替え
```ruby:コントローラー
def アクション
@テーブル名 = モデルクラス名.all.order("id DESC")
end

# 例 @items = Item.all.order("id DESC")
```

ページネーションの実装

データが一定以上になると複数のページ化する処理です。

gemfile
  gem 'kaminari' 
 #これをgemgileに書き込み
ターミナル
  $ bundle install 
 # pwdで当該ファイルを確認し実行
controller
  変数名 = クラスを利用して取得したレコードのインスタンス.page(params[:page]).per(ここに1ページで表示したい件数を入力)

#例 @tweets = Tweet.order("created_at DESC").page(params[:page]).per(5)

部分テンプレート

ビューの中に他のビューファイルの内容を持ってくる方法
headerやfooderなど他ページでも多様するのに便利な方法です。

その1、_を頭につける
_header.html.erb
_fooder.html.erb
_bubun.html.erb

その2、html.erbに書く

hmtl.erb
 <%= render partial: "部分テンプレート名(_無し)", locals: { 変数: 代入値 } =>
 <!--作成例-->
  <%= render partial: "header", locals: { home: room } %>
hmtl.erb
 <!--繰り返し構文の場合-->
 <% @homes.each do |home| %>
      <%= render partial: "部分テンプレート名'(_無し)", locals: { 部分テンプレート内での変数: 繰り返し構文の変数 } %>
  <% end %>

 <!--作成例-->
 <% @homes.each do |home| %>
      <%= render partial: "bubun", locals: { tweet: tweet } %>
  <% end %>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0