パラメータ(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"}