引数としてのメソッド呼び出し?

私はRubyとRailsの両方を学ぼうとしており、私はMichael HartlのRailsTutorial.orgを見ています。第7章または第8章では、彼はセッションについて作業しています。私は彼が関数の引数としてメソッド呼び出しを使用していると思いますが、私は完全にはわかりません。それは私が以前見たことではありません。

下記の "private"セクションの最初の関数を見てください。引数は remember_token です。これは remember_token 関数の戻り値が User.authenticate_with_salt の引数になることを意味しますか?

def current_user
    @current_user ||= user_from_remember_token
  end

  def signed_in?
    !current_user.nil?
  end

  private

    def user_from_remember_token
      User.authenticate_with_salt(*remember_token)
    end

    def remember_token
      cookies.signed[:remember_token] || [nil, nil]
    end
0
おそらく明白ですが、これを奇妙に見えるのはスプラット演算子ではなく、 remember_token がメソッドであることを示すものではありません。他のほとんどの言語では、メソッドと変数を区別するために remember_token()などを行う必要があります。
追加された 著者 Dan Rosenstark,

2 答え

正しい。

戻り値(クッキービット、またはクッキーがない場合は [nil、nil] 配列)を意味する "splatted"( * )です。 User.authenticate_with_salt に2つの個別パラメータとして(大まかに)送信されます。

1
追加された