Railsドキュメント

パラメータ(parameters)

ActionController::Parametersの新しいインスタンスを作成

説明

ActionController::Parametersの新しいインスタンスを作成

使い方

new(パラメータ={}, ロギングコンテクスト={})

class Person < ActiveRecord::Base
end
params = ActionController::Parameters.new(name: "Francesco")
params.permitted?  #=> false
Person.new(params) #=> ActiveModel::ForbiddenAttributesError
ActionController::Parameters.permit_all_parameters = true
params = ActionController::Parameters.new(name: "Francesco")
params.permitted?  #=> true
Person.new(params) #=> #<Person id: nil, name: "Francesco">

ソースコード

与えられたキーだけを含む新しいActionController::Parametersインスタンスを作成

説明

与えられたキーだけを含む新しいActionController::Parametersインスタンスを作成

使い方

slice(キー..)

params = ActionController::Parameters.new(a: 1, b: 2, c: 3)
params.slice(:a, :b) #=> <ActionController::Parameters {"a"=>1, "b"=>2} permitted: false>
params.slice(:d)     #=> <ActionController::Parameters {} permitted: false>

ソースコード

与えられたキーをフィルタリングした新しいActionController::Parametersインスタンスを作成

説明

与えられたキーをフィルタリングした新しいActionController::Parametersインスタンスを作成

使い方

except(キー..)

params = ActionController::Parameters.new(a: 1, b: 2, c: 3)
params.except(:a, :b) #=> <ActionController::Parameters {"c"=>3} permitted: false>
params.except(:d)     #=> <ActionController::Parameters {"a"=>1, "b"=>2, "c"=>3} permitted: false>

ソースコード

指定されたフィルタのみ含む新しいActionController::Parametersインスタンスを作成

説明

指定されたフィルタのみ含む新しいActionController::Parametersインスタンスを作成

使い方

permit(フィルター..)

params = ActionController::Parameters.new(user: { name: "Francesco", age: 22, role: "admin" })
permitted = params.require(:user).permit(:name, :age)
permitted.permitted?      #=> true
permitted.has_key?(:name) #=> true
permitted.has_key?(:age)  #=> true
permitted.has_key?(:role) #=> false

ソースコード

permitted属性をtrueに設定

説明

permitted属性をtrueに設定

使い方

permit!()

class Person < ActiveRecord::Base
end
params = ActionController::Parameters.new(name: "Francesco")
params.permitted?  #=> false
Person.new(params) #=> ActiveModel::ForbiddenAttributesError
params.permit!
params.permitted?  #=> true
Person.new(params) #=> #<Person id: nil, name: "Francesco">

ソースコード

与えられたキーからネストしたパラメータを参照

説明

与えられたキーからネストしたパラメータを参照

使い方

dig(キー..)

params = ActionController::Parameters.new(foo: { bar: { baz: 1 } })
params.dig(:foo, :bar, :baz) #=> 1
params.dig(:foo, :zot, :xyz) #=> nil
params2 = ActionController::Parameters.new(foo: [10, 11, 12])
params2.dig(:foo, 1) #=> 11

ソースコード

指定されたキーのパラメータを参照

説明

指定されたキーのパラメータを参照

使い方

fetch(キー, パラメータ..)

params = ActionController::Parameters.new(person: { name: "Francesco" })
params.fetch(:person)               #=> <ActionController::Parameters {"name"=>"Francesco"} permitted: false>
params.fetch(:none)                 #=> ActionController::ParameterMissing: param is missing or the value is empty: none
params.fetch(:none, {})             #=> <ActionController::Parameters {} permitted: false>
params.fetch(:none, "Francesco")    #=> "Francesco"

ソースコード

与えられたキーにマッチするキーバリューを削除

説明

与えられたキーにマッチするキーバリューを削除

使い方

extract!(キー..)

params = ActionController::Parameters.new(a: 1, b: 2, c: 3)
params.extract!(:a, :b) #=> <ActionController::Parameters {"a"=>1, "b"=>2} permitted: false>
params                  #=> <ActionController::Parameters {"c"=>3} permitted: false>

ソースコード

すべての許可されていないキーを削除したパラメータのActiveSupport::HashWithIndifferentAccess

説明

すべての許可されていないキーを削除したパラメータのActiveSupport::HashWithIndifferentAccess

使い方

to_h()

params = ActionController::Parameters.new({
name: "Senjougahara Hitagi",
oddity: "Heavy stone crab"
})
params.to_h
#=> ActionController::UnfilteredParameters: unable to convert unpermitted parameters to hash
safe_params = params.permit(:name)
safe_params.to_h #=> {"name"=>"Senjougahara Hitagi"}

ソースコード

許可されていないキーをすべて削除したパラメータのハッシュ

説明

許可されていないキーをすべて削除したパラメータのハッシュ

使い方

to_hash()

params = ActionController::Parameters.new({
name: "Senjougahara Hitagi",
oddity: "Heavy stone crab"
})
params.to_hash
#=> ActionController::UnfilteredParameters: unable to convert unpermitted parameters to hash
safe_params = params.permit(:name)
safe_params.to_hash #=> {"name"=>"Senjougahara Hitagi"}

ソースコード

URLクエリ文字列として使用するのに適した文字列

説明

URLクエリ文字列として使用するのに適した文字列

使い方

to_query(引数..)

params = ActionController::Parameters.new({
    name: "David",
    nationality: "Danish"
})
params.to_query
#=> ActionController::UnfilteredParameters: unable to convert unpermitted parameters to hash
safe_params = params.permit(:name, :nationality)
safe_params.to_query
#=> "name=David&nationality=Danish"

ソースコード

安全ではないフィルタリングされていないパラメータのActiveSupport::HashWithIndifferentAccessを参照

説明

安全ではないフィルタリングされていないパラメータのActiveSupport::HashWithIndifferentAccessを参照

使い方

to_unsafe_h()

params = ActionController::Parameters.new({
name: "Senjougahara Hitagi",
oddity: "Heavy stone crab"
})
params.to_unsafe_h
#=> {"name"=>"Senjougahara Hitagi", "oddity" => "Heavy stone crab"}

ソースコード

指定したキーと関連する値が存在するか

説明

指定したキーと関連する値が存在するか

使い方

require(キー))

ActionController::Parameters.new(person: { name: "Francesco" }).require(:person)
#=> <ActionController::Parameters {"name"=>"Francesco"} permitted: false>

ソースコード

パラメータが許可されているか

説明

パラメータが許可されているか

使い方

permitted?()

params = ActionController::Parameters.new
params.permitted? #=> false
params.permit!
params.permitted? #=> true

ソースコード

各値に対して一度だけブロックを実行した結果を新しいActionController::Parametersを参照

説明

各値に対して一度だけブロックを実行した結果を新しいActionController::Parametersを参照

使い方

transform_values()

# 失敗したら例外発生
transform_values!()

params = ActionController::Parameters.new({
name: "Senjougahara Hitagi",
oddity: "Heavy stone crab"
})
params.to_unsafe_h
#=> {"name"=>"Senjougahara Hitagi", "oddity" => "Heavy stone crab"}

ソースコード