首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ruby-2.0,rails-4无隐含的隐式转换

ruby-2.0,rails-4无隐含的隐式转换
EN

Stack Overflow用户
提问于 2013-09-19 10:40:46
回答 1查看 1.7K关注 0票数 1

在我的rails应用程序的bin文件夹中,我有一个脚本来轮询任何接收到的邮件的gmail帐户收件箱,但是这一行imap = Net::IMAP.new(config:host,config:port,true)失败了,没有隐式的

这是脚本的一种简化形式。

代码语言:javascript
复制
  #bin/mail_receiver.rb
  require File.join(File.dirname(File.expand_path(__FILE__)), '..', 'config', 'environment')
  require 'net/imap'
  require 'net/http'
  require 'rubygems'

  config = File.expand_path('../../config/initializers/load_imap_settings',  __FILE__)

  imap = Net::IMAP.new(config[:host], config[:port], true)

my_settings.yml是在其他rails配置之前在application.rb中加载的,我已经在控制台中确认它们是可用的。

代码语言:javascript
复制
#config/my_settings.yml
IMAP_HOST: 'imap.gmail.com'
IMAP_PORT: '993'
IMAP_USERNAME: 'xxxvvvyyy@gmail.com'
IMAP_PASSWORD: 'xxxvvvyyy'

然后,我让它在初始化器中可用,以便在前面粘贴的mail_receiver.rb脚本中使用。

代码语言:javascript
复制
#config/initializers/load_imap_settings.rb
ImapSettings =  { 
  host:  ENV['IMAP_HOST'], 
  port:  ENV['IMAP_PORT'], 
  username: ENV['IMAP_USERNAME'], 
 password: ENV['IMAP_PASSWORD'] 
}

在rails控制台中,我可以

代码语言:javascript
复制
config = ImapSettings
config[:host]

这会回来的

代码语言:javascript
复制
'imap.gmail.com'

类似地,port配置:端口、config:username或config:password都在rails控制台中返回正确的值,没有错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-19 14:09:29

bin/mail_receiver.rb中的File.expand_path返回一串路径。此字符串分配给config变量,当您调用config[:host]config[:port] ruby时,会引发一个错误no implicit conversion of Symbol into Integer (TypeError),因为它预期对于String (在[]内)应该是一个整数,或者范围,等等(您可以在那里看到文档http://ruby-doc.org/core-2.0.0/String.html#method-i-5B-5D)。

您应该通过config/initializers/load_imap_settings.rb通过require_relative加载您的配置,然后将参数ImapSettings的哈希分配给confing变量。您的代码(在bin/mail_receiver.rb)中)可能如下所示:

代码语言:javascript
复制
require_relative '../../config/initializers/load_imap_settings'
config = ImapSettings
imap = Net::IMAP.new(config[:host], config[:port], true)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18892457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档