我需要编写一个循环来执行以下操作:
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)
但到目前为止,在语法方面走错了道路.
我有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数组
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.我缺少任何其他内置方式?
在我看来,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上部署这个,我希望设置继续
class MyClass
def mymethod
MYCONSTANT = "blah"
end
end
Run Code Online (Sandbox Code Playgroud)
给我错误:
SyntaxError:动态常量赋值错误
为什么这被视为动态常数?我只是给它分配一个字符串.
我刚刚转到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.我相信我现在可能需要学习Python.对于那些了解两者的人来说,两者之间的概念是相似的,哪些是不同的?
我正在寻找一个类似于我为JavaScripters学习Lua所做的入门的列表:简单的事情,如空白意义和循环结构; nilPython中的名称,以及哪些值被视为"truthy"; 是不是习惯于使用相当于map和each/或笨拙的 东西 ,那些大概是笨拙的常规吗?
如果我得到了各种各样的答案,我很乐意将它们汇总到社区维基中.或者你们都可以互相争斗,试图创造一个真正的综合名单.
编辑:要清楚,我的目标是"正确的"和惯用的Python.如果有一个Python的等价物inject,但是没有人使用它,因为有更好/不同的方法来实现迭代列表和累积结果的常用功能,我想知道你是如何做的.也许我会用一系列共同目标更新这个问题,如何在Ruby中实现它们,并询问Python中的等价物.
我有一个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哈希?
我试图找出指定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)
有任何想法吗?
在模型中有一个字段
validates :image_file_name, :format => { :with => %r{\.(gif|jpg|jpeg|png)$}i
Run Code Online (Sandbox Code Playgroud)
对我来说这看起来很奇怪.我知道这是一个正则表达式.但我想:
%r{value}等于/value/?/some regex/或~=.可能吗?