标签: ruby

确定变量是否在范围内?

我需要编写一个循环来执行以下操作:

if i (1..10)
  do thing 1
elsif i (11..20)
  do thing 2
elsif i (21..30)
  do thing 3
etc...
Run Code Online (Sandbox Code Playgroud)

但到目前为止,在语法方面走错了道路.

ruby conditional integer range

130
推荐指数
8
解决办法
8万
查看次数

在Ruby中生成Guids

我有Guids很容易解决的问题.

特别是,对于密码重置工作流程,我想将Guid令牌发送到用户的电子邮件,并让他们使用令牌重置密码.由于guids是唯一的,这是非常安全的,并且节省了我通过电子邮件发送人员密码,这是有风险的.

我注意到Ruby 有一个Guid宝石 ; 但它看起来很旧,它把东西写入文件系统.

有谁知道可以创建全球唯一标识符的任何其他宝石?

我知道我可以回到:

(0..16).to_a.map{|a| rand(16).to_s(16)}.join 
Run Code Online (Sandbox Code Playgroud)

但它看起来并不像是一个合适的GUID ......

ruby guid

130
推荐指数
7
解决办法
8万
查看次数

Ruby数组的最后一个元素

假设我有一个Ruby数组

a = [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

如果我想要除了第一项以外的所有项目,我可以写a.drop(1),这很棒.但是,如果我想要除了最后一项之外的所有项目,我只能想到这一点

a[0..-2]   # or
a[0...-1]
Run Code Online (Sandbox Code Playgroud)

但这些都不像使用那么干净drop.我缺少任何其他内置方式?

ruby

130
推荐指数
10
解决办法
9万
查看次数

如何在Rails中更改Active Record的默认时区?

在我看来,application.rb我发现了以下评论

# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
 config.time_zone = 'Eastern Time (US & Canada)'
Run Code Online (Sandbox Code Playgroud)

从上面看,我已经config.time_zone到了EST时间.但是,仍然在DB中创建记录时,它看起来像是datetime以UTC格式存储.

他们说,在上面的评论中

...并使Active Record自动转换为此区域...

我怎么能这样做,在哪里?

此外,我将在heroku上部署这个,我希望设置继续

ruby timezone ruby-on-rails rails-activerecord

130
推荐指数
6
解决办法
10万
查看次数

动态常量赋值

class MyClass
  def mymethod
    MYCONSTANT = "blah"
  end
end
Run Code Online (Sandbox Code Playgroud)

给我错误:

SyntaxError:动态常量赋值错误

为什么这被视为动态常数?我只是给它分配一个字符串.

ruby

130
推荐指数
4
解决办法
10万
查看次数

zlib上的Ubuntu rails安装失败

我刚刚转到Ubuntu 8.10作为我的开发盒; 这是我第一次认真进军Linux作为日常使用的操作系统,而且我很难让Rails继续运行.我已经遵循了一些似乎工作正常的教程,但是当我尝试使用gem install或gem update时,我得到一个如下错误:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- zlib (LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/spec_fetcher.rb:1
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/commands/update_command.rb:5
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:167:in `load_and_instantiate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:88:in `[]'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:144:in `find_command'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:131:in `process_args'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:102:in `run'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:58:in `run'
from /usr/local/bin/gem:21
Run Code Online (Sandbox Code Playgroud)

我(在教程中推荐)安装了zlib,zlib1g和zlib1g-dev.我甚至找到了一些关于这个特殊问题的教程(但是除了我的以外的所有口味),但它们没有帮助.

我在Ubuntu 8.10,ruby版本1.8.8dev gem version 1.3.2

我尝试过各自单独重新安装红宝石和宝石,但无济于事.

ruby rubygems ruby-on-rails zlib ubuntu-8.10

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

从Ruby学习Python; 异同

我非常了解Ruby.我相信我现在可能需要学习Python.对于那些了解两者的人来说,两者之间的概念是相似的,哪些是不同的?

我正在寻找一个类似于我为JavaScripters学习Lua所做的入门的列表:简单的事情,如空白意义和循环结构; nilPython中的名称,以及哪些值被视为"truthy"; 是不是习惯于使用相当于mapeach/或笨拙的 东西 ,那些大概笨拙的常规吗?

如果我得到了各种各样的答案,我很乐意将它们汇总到社区维基中.或者你们都可以互相争斗,试图创造一个真正的综合名单.

编辑:要清楚,我的目标是"正确的"和惯用的Python.如果有一个Python的等价物inject,但是没有人使用它,因为有更好/不同的方法来实现迭代列表和累积结果的常用功能,我想知道你是如何做的.也许我会用一系列共同目标更新这个问题,如何在Ruby中实现它们,并询问Python中的等价物.

ruby python

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

将json转换为ruby哈希

我有一个JSON对象,其中包含以下值:

@value = {"val":"test","val1":"test1","val2":"test2"}
Run Code Online (Sandbox Code Playgroud)

我想在Ruby中循环它以获得键值对.当我使用时@each,它不会遍历该对象,因为它不是以ruby哈希形式:

@value = {"val"=>"test","val1"=>"test1","val2"=>"test2"}
Run Code Online (Sandbox Code Playgroud)

如何将上述JSON对象转换为Ruby哈希?

ruby json hashmap

129
推荐指数
4
解决办法
12万
查看次数

如何列出远程站点上可用的所有宝石版本?

我试图找出指定gem的所有远程可用版本.

我试过用:

gem list rhc --remote
Run Code Online (Sandbox Code Playgroud)

但它显示:

*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_shell (0.2.12)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ruby gem version

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

Ruby%r {}表达式

在模型中有一个字段

validates :image_file_name, :format => { :with => %r{\.(gif|jpg|jpeg|png)$}i
Run Code Online (Sandbox Code Playgroud)

对我来说这看起来很奇怪.我知道这是一个正则表达式.但我想:

  • 要知道它究竟意味着什么.是%r{value}等于/value/
  • 能够与一般的Ruby正则表达式运算符来取代它/some regex/~=.可能吗?

ruby ruby-on-rails

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