2017-10-31 7 views

答えて

2

paramsと同じ名前のparams(それを初期化していなくても)ローカル変数を導入しているためです。 paramsをparams()またはself.paramsと呼んでいる場合(Rubyインタプリタに、変数ではなくメソッドを参照していることを伝えるため)、どちらの場合もActionController::Parametersが表示されます。

+1

または 'self.params' –

+0

ありがとう!私はRubyが可変ホイストを持っていることを知らなかった。したがって、質問はRailsにはまったく関係ありません。 – alexb

+0

@Sandrik:変数は持ち上げられません。例えば、ECMAScriptとは異なり、定義される前に存在しません。しかし、*は実行時ではなく*解析時*で定義されます。これは、この質問の重複したもののいくつかの中で、よりよく説明されています(重複した質問に答えるべきでない理由の1つです(最初は尋ねてはいけません)知識がサイト全体に分割されないように、閉じてください)。 –

関連する問題