标签: ruby

Rails,MySQL和Snow Leopard

我使用我们在WWDC上获得的光盘升级到Snow Leopard.

试图运行我的一些rails应用程序现在抱怨sql

    (in /Users/coneybeare/Projects/Ambiance/ambiance-server)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
Importing all sounds in /Users/coneybeare/Projects/Ambiance/ambiance-sounds/Import 32/Compressed/

 -- AdirondackPeepers.caf
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib
  Referenced from: /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle
  Reason: image not found - /opt/local/lib/ruby/gems/1.8/gems/mysql-2.7/lib/mysql.bundle

(See full trace by running task …
Run Code Online (Sandbox Code Playgroud)

ruby mysql ruby-on-rails osx-snow-leopard

68
推荐指数
4
解决办法
6万
查看次数

obj.nil?与obj == nil

是否更好使用obj.nil?obj == nil两者的好处是什么?

ruby comparison null

68
推荐指数
4
解决办法
1万
查看次数

getaddrinfo:提供nodename或servname,或者不知道

我有一个Ruby on Rails应用程序,我正在运行Mac OS X 10.6的计算机上部署.出现问题的代码由delayed_job运行.只有当它通过delayed_job运行时才会出现此问题.如果我在控制台(rails console production)中运行它或直接通过cURL调用API,它可以正常工作.此外,整个过程在我的开发环境中没有问题.

基本上,代码在一个地方工作,但由于某种原因,在必须工作的地方失败.我搜索并找到了一些资源,但没有一个建议适用或有任何区别.当我登录服务器并运行命令时,一切正常.但由于某些原因,当它们由Capistrano运行/启动时,它不起作用.

任何帮助是极大的赞赏.

重要笔记:

码:

class CallApi < Struct.new(:num)
  def perform
    log "Entering perform"
    apinum = num || 5
    log "ApiNum = #{apinum}"
    results = attempt(2,10) do
      ActiveSupport::JSON.decode(RestClient.get(API_URL, {:params => {:apinum => apinum}}))
    end
    log "Results retrieved. (count: #{results.count})"
  end

  def log(message)
    Delayed::Worker.logger.info "[CallApi] #{Time.now} - #{message}"
  end
end
Run Code Online (Sandbox Code Playgroud)

环境配置(注意:网址是假的,但形式与真实网址相同):

API_URL = "http://api.example.org/api_endpoint"
# Originally, I had "http://" before the beginning, but found a …
Run Code Online (Sandbox Code Playgroud)

ruby capistrano ruby-on-rails delayed-job

68
推荐指数
7
解决办法
13万
查看次数

如何检查数组是否有重复项?

我有一个数组A.我想检查它是否包含重复值.我该怎么办?

ruby arrays

68
推荐指数
4
解决办法
5万
查看次数

如何使用minitest运行所有测试?

我下载了一个项目的源代码,发现了一个bug并修复了它.

现在我想运行测试以查明我是否已经破坏了任何东西.

测试采用最小的DSL.

我如何一次运行它们?

我搜索了适用的rake任务等,但我没有找到任何.

ruby minitest

68
推荐指数
5
解决办法
4万
查看次数

如何将逗号分隔的字符串转换为数组?

有没有办法将逗号分隔的字符串转换为Ruby中的数组?例如,如果我有这样的字符串:

"one,two,three,four"
Run Code Online (Sandbox Code Playgroud)

我怎么把它转换成这样的数组?

["one", "two", "three", "four"]
Run Code Online (Sandbox Code Playgroud)

ruby csv arrays string

68
推荐指数
3
解决办法
6万
查看次数

Rails中request.remote_ip和request.ip有什么区别?

正如标题所示,您可以使用这两种方法获取客户端的IP.我想知道是否有任何差异.谢谢.

在源代码中有

"/usr/local/rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.3/lib/action _dispatch/http/request.rb"257L,8741C

def ip
  @ip ||= super
end

# Originating IP address, usually set by the RemoteIp middleware.
def remote_ip
  @remote_ip ||= (@env["action_dispatch.remote_ip"] || ip).to_s
end
Run Code Online (Sandbox Code Playgroud)

但我真的不知道其含义.

ruby rack ruby-on-rails

68
推荐指数
3
解决办法
4万
查看次数

在哪里为Rails控制器放置Ruby辅助方法?

我有一些(或所有)控制器需要的Ruby方法.我试过把它们放进去/app/helpers/application_helper.rb.我已经将它用于视图中使用的方法.但是控制器看不到那些方法.是否有其他地方我应该放他们或我需要以不同方式访问这些帮助方法?

使用最新的稳定Rai​​ls.

ruby ruby-on-rails view-helpers ruby-on-rails-3 ruby-on-rails-3.2

68
推荐指数
5
解决办法
5万
查看次数

在Ruby中调用动态方法

据我所知,有三种方法可以在Ruby中动态调用方法:

方法1:

s = SomeObject.new
method = s.method(:dynamic_method)
method.call
Run Code Online (Sandbox Code Playgroud)

方法2:

s = SomeObject.new
s.send(:dynamic_method)
Run Code Online (Sandbox Code Playgroud)

方法3:

s = SomeObject.new
eval "s.dynamic_method"
Run Code Online (Sandbox Code Playgroud)

通过对它们进行基准测试,我已经确定方法1是最快的,方法2是慢的,方法3是迄今为止最慢的.

我也发现,.call并且.send都允许调用私有方法,而eval不是.

所以我的问题是:有没有理由使用.sendeval?为什么你不总是只使用最快的方法?这些调用动态方法的方法有什么其他区别?

ruby metaprogramming dynamic-method

68
推荐指数
3
解决办法
3万
查看次数

我可以在OS X v10.6.8上升级到当前版本的Ruby(2.2.3)吗?

我正在看" 安装Ruby on Rails·Mac OS X Yosemite ",并在说明中说它更新你的操作系统我不想做,因为我的电脑已经老了.

我还发现了" 如何在Mac上将Ruby更新为1.9.x? ".据我所知,我没有RVM,我害怕再次安装,以防我的系统要求仍然不够好.

最终,我正在尝试更新Jekyll,但我需要先更新我的系统.我需要Ruby 1.9.3或更高版本.将"如何在Mac上将Ruby更新为1.9.x?" 工作?我正在运行Ruby 1.8.7(2012-02-08 patchlevel 358)[universal-darwin10.0]'.

编辑:我最终安装了RVM.对于那些将来找到此页面的人,我遇到了这些问题/帮助页面:

ruby macos terminal

68
推荐指数
2
解决办法
10万
查看次数