0

我目前正在使用一个我试图添加身份验证的应用程序。我安装了我的两个 gembcrypt-rubyomniauth-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

当我尝试在终端中创建身份模型时,我不断收到此语法错误

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

您的代码使用 Ruby 1.9 语法,但我的预感是您尝试使用 Ruby 1.8 VM 生成模型。你能运行ruby --version并确认吗?

于 2013-03-06T20:34:35.273 回答
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)
  }

您似乎正在运行 Ruby 1.8。

于 2013-03-06T20:36:31.427 回答