0

現在、認証を追加しようとしているアプリケーションを使用しています。2つのgembcrypt-rubyとをインストールしomniauth-identityました。次に、これらのコンテンツを含む新しいファイルをconfig/initializersフォルダーに追加しました。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :identity, on_failed_registration: lambda { |env|
    IdentitiesController.action(:new).call(env)
  }

  OmniAuth.config.on_failure = Proc.new { |env|
    OmniAuth::FailureEndpoint.new(env).redirect_to_failure
  }
end

ターミナルでIDモデルを作成しようとすると、この構文エラーが発生し続けます

rails generate model identity name:string email:string password_digest:string

syntax error, unexpected ':', expecting kEND (SyntaxError)
  provider :identity, on_failed_registration: lambda { |env|
                                         ^

どんな助けでもいただければ幸いです。

4

2 に答える 2

0

それ以外の

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :identity, on_failed_registration: lambda { |env|
    IdentitiesController.action(:new).call(env)
  }

試す

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :identity, :on_failed_registration => lambda { |env|
    IdentitiesController.action(:new).call(env)
  }

Ruby1.8を実行しているようです。

于 2013-03-06T20:36:31.427 に答える
0

コードはRuby1.9構文を使用していますが、私の勘では、Ruby1.8VMを使用してモデルを生成しようとしました。実行ruby --versionして確認できますか?

于 2013-03-06T20:34:35.273 に答える