0
であることnilをparamsはにつながりますパラメータの割り当てが異なって動作します:のparamsの割り当ては、これは、コントローラでbefore_actionあるRailsの
[before] <ActionController::Parameters ...>
[after] <ActionController::Parameters ...>
どうしてですか?
であることnilをparamsはにつながりますパラメータの割り当てが異なって動作します:のparamsの割り当ては、これは、コントローラでbefore_actionあるRailsの
[before] <ActionController::Parameters ...>
[after] <ActionController::Parameters ...>
どうしてですか?
params
と同じ名前のparams
(それを初期化していなくても)ローカル変数を導入しているためです。 paramsをparams()
またはself.params
と呼んでいる場合(Rubyインタプリタに、変数ではなくメソッドを参照していることを伝えるため)、どちらの場合もActionController::Parameters
が表示されます。
または 'self.params' –
ありがとう!私はRubyが可変ホイストを持っていることを知らなかった。したがって、質問はRailsにはまったく関係ありません。 – alexb
@Sandrik:変数は持ち上げられません。例えば、ECMAScriptとは異なり、定義される前に存在しません。しかし、*は実行時ではなく*解析時*で定義されます。これは、この質問の重複したもののいくつかの中で、よりよく説明されています(重複した質問に答えるべきでない理由の1つです(最初は尋ねてはいけません)知識がサイト全体に分割されないように、閉じてください)。 –