LoginSignup
0
2

More than 5 years have passed since last update.

WEBページ作成によく使う機能等まとめ

Last updated at Posted at 2018-08-31

下記にWEBページ作成にあたり、よく使うであろうものをまとめます。
気が向いたときに追記していきます。

ページネーションの実装にはkaminariを使う。

kaminari:pageメソッドと、kaminari:perメソッドがある。

【参考】kaminari徹底入門

link_toメソッド

link_to(body,url[,html_options])

body:リンクテキスト
url:URLのパス
htm;options:<a>要素に付与する属性
第三引数として、httpメソッドを指定できる

HTTPリクエスト

Railsのリソースの7つのアクション 役割
get サーバーからブラウザに情報を返す。単にウェブサイトを閲覧する際にはこのメソッドが利用されている。
post ブラウザからサーバーに情報を送信し、サーバーに情報を保存する。情報の登録などの際に、サーバーに情報を送信するために利用される。
delete ブラウザからサーバーに情報を送信し、サーバーに情報を保存する。情報の登録などの際に、サーバーに情報を送信するために利用される。
patch ブラウザからサーバーに情報を送信し、サーバー内の情報を置き換える。登録情報の更新などの際に、サーバー内のデータを更新するために利用される。

rake routesコマンドでHTTPリクエストの一覧を表示できる。

コマンド実行

#moooviディレクトリに移動
$ cd mooovi
#rake routesコマンドを実行
$ rake routes

出力結果

           Prefix Verb URI Pattern                                 Controller#Action
   search_products GET  /products/search(.:format)                  products#search
           product GET  /products/:id(.:format)                     products#show
              root GET  /                   

Railsのリソースの7つのアクション

Railsのリソースの7つのアクション 役割
index リソースの一覧を表示する。
show リソースの内容を表示する。
new リソースを追加する。
create リソースを追加し、作成する。
edit リソースを更新するためのフォームを表示する。
update リソースを更新する。
destroy リソースを削除する。

【例】

TweetsController.rb
class TweetsController < ApplicationController

  def index
    @tweets = Tweet.includes(:user).page(params[:page]).per(5).order("created_at DESC")
  end

end

resourcesメソッド

Railsの基本となるコントローラの7つのアクションで記載した7つのアクション名に対してのルーティングを自動で生成するメソッド。

テーブルに保存されるレコード1つの情報のことをリソースと呼ぶ。

従来なら、下記のようにモデルからビューへのルーティングを指定する。

TechReviewSite::Application.routes.draw do
  get 'products/:product_id/reviews/new' => 'reviews#new'
  post 'products/:product_id/reviews' => 'reviews#create'
end

しかし、このように パス と アクション を自分で考えて定義していくのは面倒。このとき、resourcesメソッドが使える。

【例】

Rails.application.routes.draw do
  resources :books
end

ルーティングのネスト

ネストとは入れ子構造とも呼ばれ、ある記述の中に入れ子構造で別の記述をする方法です。
ルーティングでいうと、あるコントローラへのルーティングの記述の中に、別のコントローラへのルーティングを記述するということを指します。

自分は下記のように理解してます。間違ってるかも?
要は、どのモデルに対するデータなのかを明示するために使う。
例:どのツイートに対するコメントなのか

部分テンプレート

ビューを作成する際に同じようなレイアウトの部分が複数存在する場合、同じHTML構造の部分を共通化することによって、無駄なくビューファイルを作成することが出来ます。

部分テンプレートのファイル名は必ずアンダーバー「_」から始まります。

renderメソッド

renderメソッドは、部分テンプレートを呼び出す際に利用するメソッドです。

render partialオプション

renderメソッドに :partialというオプションをつけることで、明示的に部分テンプレート名を指定し、部分テンプレートを表示することができます。
下の例では、_sample.html.erbという部分テンプレートを呼び出しています。

render partial: "sample"

render localsオプション

また、localsというオプションを用いると部分テンプレート内でその変数を使えるようになります。

render partial: "sample", locals: { tweet: "hello!" }
0
2
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
2