当前位置: 首页 > 知识库问答 >
问题:

Rails-Desive/Omniauth-无方法错误配置

洪俊拔
2023-03-14

我想把facebook的身份验证和devise整合起来。

我使用这个教程(http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin),并让它在本地工作,但我一直得到一个错误,当我推到heroku。我已经将Facebook开发/应用程序部分中的链接更改为实际域。

我在产品中有以下代码。rb。对于“app_domain”部分,我尝试加入所有类型的app domain变体(domain、domain.com、heroku app name等),但我不知道应该加入什么。

我是一个新的程序员,所以会感谢任何帮助!

# Email for omniauth facebook auth
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { :host => config.app_domain }
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com', 
port: '587',
enable_starttls_auto: true,
user_name: 'someuser',
password: 'somepass',
authentication => :plain,
domain => 'somedomain.com'
}

NoMethodError:未定义的方法“app_domain”

   /tmp/build_9557c4b1-3f72-41e9-bc67-afe937d8b044/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/railtie/configuration.rb:95:in

method_missing' /tmp/build_9557c4b1-3f72-41e9-bc67-afe937d8b044/config/environments/production.rb:100:在块中 /tmp/build_9557c4b1-3f72-41e9-bc67-afe937d8b044/vendor/bundle/ruby/2.0.0/gems/railties-4.1.1/lib/rails/railtie.rb:210:在instance_eval /tmp/build_9557c4b1-3f72-41e9-bc67-afe937d8b044/供应商/捆绑/红宝石/2.0.0/宝石/铁路-4.1.1/lib/rails/railtie.rb:210: in配置' /tmp/build_9557c4b1-3f72-41e9-bc67-afe937d8b044/config/environments/production.rb: 1: in


共有1个答案

云和硕
2023-03-14
匿名用户

您的错误消息,"未定义的方法'app_domain'"源于这一行:

config.action_mailer.default_url_options = { :host => config.app_domain }

正如上面所说,您没有在config选项上分配app\u域属性。Action Mailer是Rails发送电子邮件的一部分,它使用此设置生成回应用程序的链接。

您可以只添加config。app_domain=“myapp.herokuapp.com”到您的config/environments/production的顶部。rb文件。但这是硬编码的;另一种方法是使用环境变量。

Heroku为此使用其config命令;运行heroku配置:设置APP\u DOMAIN=myapp。希罗库普。com在终端中进行设置,然后在Ruby应用程序中使用ENV['APP_DOMAIN']访问它。因此,您的配置行如下所示:

config.action_mailer.default_url_options = { :host => ENV['APP_DOMAIN'] }

最后,在底部的smtp\u设置块中有一个domain设置。您可能也希望使用新设置来实现这一点。

 类似资料:
  • 我正在尝试从我的heroku rails应用程序运行此导入任务,该应用程序连接到AWS并获取CSV,但出现以下错误(完整错误如下所示): ArgumentError:参数数目错误(给定1,应为2..3) 任何帮助将不胜感激。 这是我的初始值设定项/aws中的代码。rb文件,我将凭证放在其中: 以下是任务(在我的一个rake文件中): 这是完整控制台错误 Franks MacBook Air:nba

  • 我对Rails相当陌生,所以这可能会成为显而易见的事情;然而,我刚刚花了一天的大部分时间来解决这个问题。 我有一个rails应用程序,我已经开发了一段时间,但是我今天才开始实现mailers。我在这里学习了Rails ActionMailer教程:http://guides.rubyonrails.org/v3.0.3/action_mailer_basics.html邮件程序在一个新的示例应用程

  • 我在Rails(3.2.1)中有一个路由问题。 我正在使用omniauth saml进行身份验证(https://github.com/PracticallyGreen/omniauth-saml). 医生说: “用于简化IdP中SAML SP配置的服务提供商元数据可以从http://example.com/auth/saml/metadata.将此URL发送给IdP的管理员。" 当我转到我的服务

  • 我正在尝试为我的Rails网站创建Google SAML SSO自定义应用程序集成。我正在使用omniauth saml gem。 但是,我真的很困惑在google saml idp设置期间需要在“服务提供商详细信息”下设置的“ACS URL”和“实体ID”。 我有几个问题: ACS URL应该是什么? 我的理解是:它应该是谷歌接收和发送SAML断言的URL。如果这是正确的,那么:assertio

  • 我使用RVM在Ubuntu18.04上安装RubyonRails。ruby-v:2.4。0轨道-v:5.1。3. 我试图运行“bundle install”命令,但发现以下错误。请为我提供最好的解决方案。 无法验证https://rails-assets.org/.的SSL证书可能遇到中间人攻击,但很可能您的系统没有验证所需的CA证书。有关OpenSSL证书的信息,请参见bit.ly/ruby-s

  • 问题内容: 我刚从python移植了我的应用程序,所以Go有点新。看来我遇到了记忆问题。 它在ubuntu机器上运行。通过主管。 编辑: 设置解决问题 问题答案: 对于遇到此问题的其他人,这是golang问题中的相关近期问题 对于所有受影响的人,在Linux上得到适当修复之前的临时替代方法可以是以下之一: 启用无条件过量使用: 能够无条件过载:添加交换到你的主机,用它几乎永远不会被使用,但在计算参