Railsドキュメント

コントローラ(controller)

コントローラについて

説明

モデルからデータを受け取りビューにレンダリングする仕組み

特徴

  • コントローラには複数のアクションが含まれている
  • コントローラの名前の付け方には決まりがある

規約

  • 英大文字から始まる
  • 英数字のみ
  • 単語の区切りでは、先頭文字を大文字
    • EntriesController
    • UserCommentsController
  • ファイルはapp/controllerディレクトリに格納
  • ファイル名は、コントローラ名の単語区切りを「_」にし、すべて小文字にしたもの
    • app/controllers/entries_controller.rb
    • app/controllers/user_comments_controller.rb

ひな型

class コントローラ名Controller < ApplicationController
  def メソッド名
  end
edn

パラメータの取得

説明

URLから送られてきた値やフォームで入力した値

使い方

params[:パラメータ名]

特徴

  • リンクによるパラメータの受け渡し
  • フォームによるパラメータの受け渡し

リンクによるパラメータの受け渡し

ビュー
link_to 'ユーザ名', controller: 'users', action: 'show', id: =1
コントローラ
def show
    id = params[:id] # id = 1
end

フォームによるパラメータの受け渡し

ビュー
form_for @user do |f|
    f.text_field :name
    f.text_area :body
end
コントローラ
def create
    name = params[:name]
    body =  params[:body]
end

配列でパラメータの受け渡し

xxx[]

ハッシュでパラメータの受け渡し

xxx[aaa]

その他

コントローラ名やアクション名の取得

params[:controller]やparams[:action]で、コントローラ名やアクション名を取得できる

アップロードされたファイルを取得

説明

フォームからアップロードされたファイルを取得

使い方

ファイル名

params[:パラメータ名].original_filename

コンテンツタイプ

params[:パラメータ名].content_type

サイズ

params[:パラメータ名].size

ファイル本体の読み込み

params[:パラメータ名].read

アップロードファイルを取得

params[:file]

ファイル名を取得

params[:file].original_filename

拡張子の取得

params[:file].content_type

ファイルのサイズの取得

params[:file]

ファイル本体の取得

params[:file].read

ページのレイアウトを設定

説明

  • 使用するレイアウトを明示的に指定
  • 指定しない場合は、app/views/layouts/コントローラ名.html.erbを使用
  • app/views/layouts/コントローラ名.html.erbが無い場合は、app/views/layouts/application.html.erbを使用

使い方

layout レイアウト名

基本となる使い方

layout bank_standard

動的にレイアウトを変える

layout :writers_and_readers
private
def writers_and_readers
  logged_in? ? "writer_layout" : "reader_layout"
end

特定のアクションのみにレイアウトを指定

layout weblog_standard, only: :rss

特定のアクション以外にレイアウトを指定

layout weblog_standard, except: :rss

表示させるviewファイルを指定して表示

説明

表示させるviewファイルを指定して表示

使い方

render(表示方法..)

オプション

オプション 説明
:content_type content-typeを変更
:layout レイアウトを指定
:location HTTPのLocationヘッダーを設定
:status ステータスコードを制御
:formats フォーマット指定

表示方法

表示方法 説明
:action 他のアクションのテンプレートを表示
:partial 部分テンプレートを呼び出して表示
:template テンプレートを指定して表示
:text 任意のテキストを指定して表示
:xml 指定したテキストを表示し、コンテンツタイプをapplication/xmlに設定
:json 指定したテキストを表示し、コンテンツタイプをtext/x-jsonに設定
:update ブロックで処理を行い表示
:file ファイルを指定して表示
:inline ビューとするソースコードを直接指定
:plain 平文テキストを表示
:html HTML文字列を表示
:js JavaScriptを表示
:body 生のコンテンツを表示

注意点

  • 同じアクション内でrenderメソッドを複数呼び出すと、エラーになるので、and returnを付ける

render :action

説明

他のアクションのテンプレートを表示

使い方

render(action: "アクション名" [, layout: レイアウト名])

「_new.html.erb」を表示
render action: "new"
他のレイアウトを使用
render action: "new", layout: "user"
レイアウトは使用しない
render action: "new", layout: false

render :template

説明

他のコントローラのテンプレートを表示

使い方

render template: コントローラ名/アクション名

他のコントローラのテンプレートを表示
render template: "user/show"
templateを省略
render "user/show"

render :file

説明

アプリケーション外のテンプレートを表示
「/」で始まる場合はファイル出力と認識するので、fileオプションは省略可能

使い方

render file: ファイルパス

「/common/template/index」を表示
render file: "/common/template/index"
fileを省略
render file: "/common/template/index"

render :text

説明

文字列を直接表示

使い方

render text: "文字列"

レイアウトを適用
render text: "文字例", layout: true
エラーメッセージの表示
render text: "文字例", status: 500
「hello world!」を表示
render text: "hello world!"
文字列とstatusコード500を返す
render text: "Explosion!", status: 500
レイアウトを使用して文字列を表示
render text: "Hi there!", layout: true

render :partial

説明

部分テンプレート

使い方

render partial: "部分テンプレート名"

_page.rhtmnlを使って表示
render partial: "page"
部分テンプレートを繰り返し表示
render partial: "user", collections: @users
部分テンプレートにローカル変数を渡す
render partial: "user", locals: { val1: xxx, val2: xxx }

render :inline

説明

アプリケーション外のテンプレートを表示

使い方

render inline: テンプレート文字列

現在の時刻を表示
render inline: "<%= Time.now %>"

render :xml

説明

指定されたテキストを表示し、コンテンツタイプをapplication/xmlに設定

使い方

render xml: モデル or 文字列

pagesテーブルの内容をXML形式で出力
@pages = Page.all
render xml: @pages

render :json

説明

指定されたテキストを表示し、コンテンツタイプをapplication/xmlに設定

使い方

render json: モデル or 文字列

pagesテーブルの内容をJSON形式で出力
@pages = Page.all
render json: @pages

404コード
render nothing: true, status: 404

render :plain

説明

平文テキストを表示

使い方

render plain: 文字列

OK
render plain: "OK

render :html

説明

平文テキストを表示

使い方

render html: 文字列

Not Found
render html: helpers.tag.strong('Not Found')

render :js

説明

JavaScriptを表示

使い方

render js: 文字列

JavaScriptを表示
render js: "alert('Hello Rails');"

render :body

説明

生のコンテンツを表示

使い方

render body: 文字列

JavaScriptを表示
render body: "raw"

その他

renderを複数使用

説明

renderを複数回呼び出すとエラーになるため、条件分岐した後「and return」で明示的に終了させる

使い方
render オプション and return

ソースコード

表示結果を文字列として取得

説明

表示結果を文字列として取得

使い方

render_to_string(リクエスト.., ブロック引数)

render_to_string partial: "user"

ソースコード

URLを指定して表示

説明

URLを指定して表示

使い方

redirect_to(オプション={}, レスポンスオプション={})

オプション

オプション 説明
:alert エラーメッセージを表示
:notice 通知用のメッセージを表示
:flash パラメータを使って、一時的に値を保存

ステータスコード

シンボル コード 説明
:ok 200 成功
:created 201 リソースの生成に成功
:moved_permanently 301 リソースが永続的にリダイレクト
:found 302 リソースが一時的にリダイレクト
:see_other 303 リソースが別の場所にある
:bad_request 400 不正なリクエスト
:unauthorized 401 未承認
:forbidden 403 アクセス禁止
:not_found 404 リソースが存在しない
:method_not_allowed 405 HTMLメソッドが許可されていない
:internal_server_error 500 内部サーバエラー

指定したページにリダイレクト

redirect_to action: "show", id: 5

インスタンス変数

redirect_to @post

URL

redirect_to "http://www.rubyonrails.org"

ステータスコード指定

redirect_to post_url(@post), status: 301

エラーメッセージを表示

redirect_to post_url(@post), alert: "Watch it, mister!"

通知メッセージを表示

redirect_to post_url(@post), status: :found, notice: "Pay attention to the road"

flash指定

redirect_to post_url(@post), status: 301, flash: { updated_post_id: @post.id }

ソースコード

バイナリデータを出力

説明

バイナリデータを出力

使い方

send_data(送るデータ, オプション={})

オプション

オプション 説明 デフォルト値
:filename 保存するときに使用するファイル名 ファイル名
:type コンテントタイプ application/octet-stream
:disposition ファイルをインラインで表示するか、ダウンロードして保存するかブラウザに通知 attachment
:status ステータスコード 200(:ok)

バイナリデータを出力

send_data buffer

動的に生成

send_data generate_tgz('dir'), filename: 'dir.tgz'

JPEGを表示

send_file '/path/to.jpeg', type: 'image/jpeg', disposition: 'inline'

404を表示

send_file '/path/to/404.html', type: 'text/html; charset=utf-8', status: 404

ソースコード

画像やファイルのダウンロード

説明

指定したパスに存在する画像やファイルを読み込みその内容をクライアントに送信

使い方

send_file(ファイルのパス, オプション={})

オプション

オプション 説明 デフォルト値
:filename ダウンロードするときに使用するファイル名を指定 ファイル名
:type コンテントタイプ application/octet-stream
:disposition ファイルをインラインで表示するか、ダウンロードして保存するかブラウザに通知 attachment
:status ステータスコード 200(:ok)
:url_based_filename Content-Dispositionヘッダ内のファイルのベース名を使わなくする false
:length 送信されようとしているコンテンツのサイズ  
:stream falseの場合、ファイル全体が読み込まれてから表示  
:buffer_size ストリーミングがtrueの時に、1回に送信されるデータ量  
:x_sendfile lighttpdやapacheで利用できるローカルファイル送信用モジュール  

指定されたzipファイルをダウンロード

send_file '/path/to.zip'

指定されたPDFをtest.pdfという名前でダウンロード

send_file '/path/test_pdf.pdf', filename: 'test.pdf'

ソースコード

リクエストを送ってきたユーザのヘッダー情報や環境変数を取得

説明

リクエストを送ってきたユーザのヘッダー情報や環境変数を取得

使い方

request.メソッド()

メソッド

メソッド名 説明
GET  
POST  
accept_encoding エンコーディング形式を取得
accept_language 受信可能な言語
authority authorityを取得
authorization 認証情報を取得
base_url URLを取得
body ポストデータを取得
content_charset charsetパラメータを取得
content_length コンテンツサイズを取得
content_type content-typeを取得
controller_class  
controller_class_for  
cookie_jar  
cookies クッキーを取得
delete? HTTPメソッドがDELETEであるか?
get? HTTPメソッドがGETであるか?
head? HTTPメソッドがHEADであるか?
host ホスト名を取得
host_with_port ホスト名とポート番号を取得
form_data? フォームデータがあるか?
fullpath リクエストURLを取得
headers リクエストヘッダーの情報取得
http_auth_salt  
ip IPアドレスを取得
link? HTTPメソッドがLINKであるか?
key? 一致するヘッダーがあるか?
local? ローカル通信であるか
logger  
media_type メディア対応の取得
media_type_params  
method HTTPメソッド
method_symbol メソッドをシンボルで取得
multithread?  
new  
original_fullpath 最後に要求されたパスを取得
original_url 元のリクエストURLを取得
options?  
parseable_data?  
patch? HTTPメソッドがPATCHであるか?
path  
path_info  
path_info=  
port ポート番号
post? HTTPメソッドがPOSTであるか?
put? HTTPメソッドがPUTであるか?
query_string クエリ文字(?より後ろの部分)
referer  
query_parameters  
raw_post リクエスト本文を取得
remote_ip クライアントのipアドレスを取得
request_id X-Request-Idヘッダーを取得
request_method リクエストメソッドを取得
request_method_symbol リクエストメソッドをシンボルで取得
request_parameters  
reset_session  
scheme  
script_name  
script_name=  
session  
session_options  
send_early_hints  
server_software 使用しているサーバソフトウェア
session_options=(options)  
ssl?  
trace?  
trusted_proxy?  
unlink?  
url リクエストのURLを取得
user_agent ユーザエージェントを取得
values_at  
uuid X-Request-Idヘッダーを取得
xhr? 「X-Requested-With」ヘッダーに「XMLHttpRequest」が含まれているか?
xml_http_request? Ajaxによって実行されたものか

リクエストメソッドの取得

request.request_method

リンク先のURLを取得

request.headers[:referer]

すべてのリクエストヘッダを取得

request.headers

ソースコード

説明

応答ステータスとヘッダ情報のみを表示

使い方

head(ステータスコード, 応答ヘッダ={})

ステータスコード

シンボル コード 説明
:ok 200 成功
:created 201 リソースの生成に成功
:moved_permanently 301 リソースが永続的にリダイレクト
:found 302 リソースが一時的にリダイレクト
:see_other 303 リソースが別の場所にある
:bad_request 400 不正なリクエスト
:unauthorized 401 未承認
:forbidden 403 アクセス禁止
:not_found 404 リソースが存在しない
:method_not_allowed 405 HTMLメソッドが許可されていない
:internal_server_error 500 内部サーバエラー

応答ステータスとヘッダ情報のみを表示

head :created, location: person_path(@person)

ステータスコード200

head :ok

ステータスコード404

head :not_found

ソースコード

簡単なメッセージを画面に表示

説明

簡単なメッセージを画面に表示

使い方

基本

flash[キー] = 値

flash[:alert]へのアクセッサー

flash.alert()

flash[:notice]へのアクセッサー

flash.notice()

現在のアクションのみ有効

flash.now[キー] = 値

有効期限を1リクエスト増やす

flash.keep(キー)

破棄

flash.discard(キー)

特徴

  • 項目追加の成功の有無などユーザへ簡単なメッセージを表示する
  • 「アクション->リダイレクト->アクション」の処理が済むと削除される
  • ブラウザのクッキーを無効にしている場合は使用できない

コントローラ

flash[:notice] = メッセージ

ビュー

h(flash[:notice])

XML形式のデータをハッシュに変換

説明

XML形式のデータをハッシュに変換

使い方

Hash.from_xml(XMLデータ, 禁止された型=nil)

Hash.from_xml("<langs><lang>Japanese</lang><lang>English</lang></langs>")
# {"langs"=>{"lang"=>["Japanese", "English"]}}

ソースコード

コントローラのパスを取得

説明

コントローラのパスを取得

使い方

コントローラ名.controller_path

MyApp::MyPostsController.controller_path
# "my_app/my_posts"

ソースコード

コントローラのクラス名を取得

説明

コントローラのクラス名を取得

使い方

ActionController::Base.controller_name

EntriesController.controller_name
# "entries"

ソースコード

Atomフィードを生成

説明

Atomフィードを生成

使い方

atom_feed(オプション, ブロック引数)

オプション

オプション 説明 デフォルト値
:language 使用する言語 en-US
:root_url フィードを置き換える文章のURL /
:url フィードのURL 現在のURL
:id フィードのid値  
:schema_date スキーマ情報 今年
:instruct XMLのハッシュ  

Atomフィードを生成

atom_feed do |f|
    f.title('新着記事フィード')
    f.updated(@pages.last.created_at)
    @pages.each do |p|
        feed.entry(p, url: p.url, published: p.published, updated: p.updated_at) do |i|
            i.title(p,title)
            i.content("#{@page.published} 公開")
        end
    end
end

日本語を指定

atom_feed(language: 'ja-JP') do |f|
    f.title('新着記事フィード')
    f.updated(@pages.last.created_at)
    @pages.each do |p|
        feed.entry(p, url: p.url, published: p.published, updated: p.updated_at) do |i|
            i.title(p,title)
            i.content("#{@page.published} 公開")
        end
    end
end

ソースコード

キャッシュのポリシーを設定

説明

キャッシュのポリシーを設定

使い方

expires_in(有効期限, オプション={})

オプション

オプション 説明
:no-cache キャッシュを無効化
:no-store 返されたデータをキャッシュに記録しない
:max-age キャッシュの有効性の再確認をせずに、データに保持できる最大期間
:max-stale 有効期限の切れたデータを許可する
:min-fresh 最新のデータを取得する
:no-transform メディアタイプを変更しない
:only-if-cached キャッシュからデータを取得
:cache-extension トークンを使って拡張
:public キャッシュされたデータを複数ユーザで共有
:private キャッシュされたデータを共有しない
:must-revalidate キャッシュの有効期間を必ず問い合わせる
:proxy-revalidate プロキシサーバにキャッシュの有効性を確認
:s-maxage 基本的な機能は、max-ageと同じ。ただし、こちらは共有キャッシュにだけ適用される
:stale_while_revalidate stale_while_revalidate
:stale_if_error stale_if_error

キャッシュの有効期限を20分

expires_in 20.minutes

キャッシュを共有

expires_in 20.minutes, public: true

ソースコード

ログを出力

説明

ログファイルなどに出力

使い方

logger.ログレベル(値)

ログレベル

ログレベル 説明
unknown(値) 不明なエラー
fatal(値) 致命的なエラー
error(値) エラー
warn(値) 警告
info(値) 通知
debug(値) デバック情報

致命的なエラー

logger.fatal('致命的なエラーです')

キャッシュの無効化

説明

キャッシュの無効化

使い方

expires_now()

キャッシュの無効化

expires_now

ソースコード

デフォルトのURLにマッピング

説明

デフォルトのURLにマッピング

使い方

url_options()

url_options

ソースコード

フラッシュメッセージのタイプを指定

説明

フラッシュメッセージのタイプを指定
フラッシュメッセージとは、エラー時などにページ上部に表示されるメッセージ

使い方

add_flash_types(タイプ名..)

フラッシュメッセージのタイプを指定

add_flash_types :warning

複数指定

add_flash_types :success, :info, :warning, :danger

ソースコード

直前のページにリダイレクト

説明

直前のページにリダイレクト

使い方

redirect_back(fallback_location: HTTP_REFERERが設定されていない場合のリダイレクト先, allow_other_host: 許可されたHost=_allow_other_host, 引数..)

オプション

オプション 説明 デフォルト値
:allow_other_host 異なるホストへのリダイレクトを許可するか true

直前のページにリダイレクト

redirect_back fallback_location: { action: "show", id: 5 }

インスタンス変数

redirect_back fallback_location: @post

URL

redirect_back fallback_location: "http://www.rubyonrails.org"

異なるホストへのリダイレクト

redirect_back fallback_location: '/', allow_other_host: false

補足

  • Rails5.1以前は「redirect_to :back」

ソースコード

直前のページにリダイレクトしなければ指定したページへリダイレクト

説明

直前のページにリダイレクトしなければ指定したページへリダイレクト

使い方

redirect_back_or_to(fallback_location, allow_other_host: 異なるホストへのリダイレクトを許可するか=_allow_other_host, オプション引数)

オプション

オプション 説明
:alert エラーメッセージを表示
:notice 通知用のメッセージを表示
:flash パラメータを使って、一時的に値を保存

actionで指定

redirect_back_or_to({ action: "show", id: 5 })

URLで指定

redirect_back_or_to "http://www.rubyonrails.org"

相対パスで指定

redirect_back_or_to "/images/screenshot.jpg"

異なるホストへのリダイレクトを許可しない

edirect_back_or_to '/', allow_other_host: false

ソースコード

リクエストで指定されたフォーマットに合わせて出力

説明

リクエストで指定されたフォーマットに合わせて出力

使い方

respond_to(mimes..)

respond_to do |format|
  format.html
  format.js
  format.xml { render xml: @people }
end

ソースコード

Basic認証

説明

Basic認証

使い方

http_basic_authenticate_with(name: 名前, password: パスワード, realm: 認証が必要がエリア名=nil, オプション引数)

http_basic_authenticate_with name: ENV['BASIC_AUTH_USERNAME'], password: ENV['BASIC_AUTH_PASSWORD'] if Rails.env == 'staging'

ソースコード

CSRF対策の設定

説明

CSRF対策の設定

使い方

protect_from_forgery(オプション={})

オプション

オプション 説明
:only 実行するアクション
:except 実行しないアクション
:if 実行する条件を指定
:unless 実行されない条件を指定
:prepend  
:with  

CSRF対策の設定

protect_from_forgery except: :index

CSRF対策の設定

protect_from_forgery with: :exception

ソースコード

CSRF対策の設定をオフ

説明

CSRF対策の設定をオフ

使い方

skip_forgery_protection(オプション={})

オプション

名前 説明
:only/:except 偽造防止機能をアクションのサブセットにのみ適用
:if/:unless 条件に応じて偽装防止機能を完全にオフ
:prepend 事前に実行
:with 検証されていないリクエストを処理する方法
:exception 例外を発生
:reset_session セッションをリセット
:null_session リクエスト時に空のセッション

skip_before_action :verify_authenticity_token

ソースコード

EtagとLast-Modifiedをレスポンスヘッダに付与

説明

レスポンスにetagとlast_modifiedを設定してリクエストが新しい場合は「304 Not Modified」レスポンスを表示

使い方

fresh_when(オブジェクト), etag: ETag=nil, weak_etag: 弱いETag=nil, strong_etag: 強いETag=nil, last_modified: 最終更新日のバリデータを設定=nil, public: キャッシュ可能にしたいか=false, cache_control: Cache-Controlヘッダー={}, template: テンプレート=nil)

リクエストが新しい場合は「304 Not Modified」レスポンスを表示

@article = Article.find(params[:id])
fresh_when(@article)

last_modifiedを指定

@article = Article.find(params[:id])
fresh_when(etag: @article, last_modified: @article.updated_at, public: true)

cache_controlを指定

@article = Article.find(params[:id])
fresh_when(@article, public: true, cache_control: { no_cache: true })

templateを指定

@article = Article.find(params[:id])
fresh_when(@article, template: 'widgets/show')

ソースコード

ブラウザなどでのキャッシュを無期限

説明

ブラウザなどでのキャッシュを無期限

使い方

http_cache_forever(public: プロキシがレスポンスをキャッシュすることを許可するか=false)

http_cache_forever(public: true)

ソースコード

HTTP1.1のCache-Controlヘッダにno-storeを設定

説明

HTTP1.1のCache-Controlヘッダにno-storeを設定

使い方

no_store()

no_store()

ソースコード

EtagとLast-Modifiedからリクエストが古いかチェック

説明

EtagとLast-Modifiedからリクエストが古いかチェック

使い方

stale?(オブジェクト=nil, **freshness_kwargs)

@article = Article.find(params[:id])
stale?(etag: @article, last_modified: @article.updated_at)

ソースコード

アクションのパラメータのエンコーディングを指定

説明

アクションのパラメータのエンコーディングを指定

使い方

param_encoding(アクション名, パラメータ, エンコードの種類)

param_encoding :show, :file_path, Encoding::ASCII_8BIT

ソースコード

アクションのエンコーディングにASCII-8BITを指定

説明

アクションのエンコーディングにASCII-8BITを指定

使い方

skip_parameter_encoding(アクション名)

skip_parameter_encoding :show

ソースコード

ストリームをブラウザに送信

説明

ストリームをブラウザに送信

使い方

send_stream(filename: ファイル名, disposition: インラインで表示するかダウンロードするか='attachment', type: HTTPコンテンツタイプ=nil)

send_stream(filename: "subscribers.csv") do |stream|
    stream.write "email_address,updated_at\n"
    @subscribers.find_each do |subscriber|
        stream.write "#{subscriber.email_address},#{subscriber.updated_at}\n"
    end
end

ソースコード

ETagを生成

説明

ETagを生成

使い方

etag(情報)

class InvoicesController < ApplicationController
    etag { current_user&.id }
    def show
        # Etag will differ even for the same invoice when it's viewed by a different current_user
        @invoice = Invoice.find(params[:id])
        fresh_when etag: @invoice
    end
end

ソースコード

コントローラの属性に対するヘルパーアクセサを宣言

説明

コントローラの属性に対するヘルパーアクセサを宣言

使い方

helper_attr(属性..)

attr_accessor :name
helper_attr :name

ソースコード

指定されたパスに含まれるヘルパー名のリスト

説明

指定されたパスに含まれるヘルパー名のリスト

使い方

all_helpers_from_path(パス)

ActionController::Base.all_helpers_from_path 'app/helpers'
#=> ["application", "chart", "rubygems"]

ソースコード

リクエストごとに異なるログレベルを設定

説明

リクエストごとに異なるログレベルを設定

使い方

log_at(ログレベル, オプション引数)

# Use the debug log level if a particular cookie is set.
class ApplicationController < ActionController::Base
    log_at :debug, if: -> { cookies[:debug] }
end

ソースコード

ParamsWrapperが属性名を決定するために使用するモデルを設定

説明

ParamsWrapperが属性名を決定するために使用するモデルを設定

使い方

wrap_parameters(属性やモデルなど, オプション={})

オプション

名前 説明
:format 有効になるフォーマットのリスト
:include ハッシュにラップする属性名のリスト
:exclude ネストされたハッシュから除外する属性名のリスト

XMLフォーマットのパラメータラッパーを有効

wrap_parameters format: :xml

ハッシュにラップ

wrap_parameters :person

include指定

wrap_parameters include: [:username, :title]

ソースコード

コントローラのアクション内で呼び出し可能な_renderersに名前を付けてレンダラーを追加

説明

コントローラのアクション内で呼び出し可能な_renderersに名前を付けてレンダラーを追加

使い方

use_renderers(引数..)

class MetalRenderingController < ActionController::Metal
    include AbstractController::Rendering
    include ActionController::Rendering
    include ActionController::Renderers
    use_renderers :json
    def show
        render json: record
    end
end

ソースコード

一度だけ使用される時間を使ったMD5を生成

説明

一度だけ使用される時間を使ったMD5を生成

使い方

nonce(シークレットキー, 時間(Time.now))

ソースコード