因此,matz决定保留upcase并downcase限制/[A-Z]/i在ruby 1.9.1中.
ActiveSupport::Multibyte长期以来在ruby 1.8.x中经历了很棒的i18n案例String#mb_chars.
但是,当在ruby 1.9.1下尝试时,它似乎不起作用.这是我写的一个简单的测试脚本,以及我得到的输出:
$ cat test.rb
# encoding: UTF-8
puts("@ #{RUBY_VERSION} " + (__ENCODING__ rescue $KCODE).to_s)
sd, su = "Iñtërnâtiônàlizætiøn", "IÑTËRNÂTIÔNÀLIZÆTIØN"
def ps(u, d, k); puts "%-30s: %24s / %-24s" % [k, u, d] end
ps sd.upcase, su.downcase, "Plain ruby"
require 'rubygems'; require 'active_support'
ps sd.upcase, su.downcase, "With active_support"
ps sd.mb_chars.upcase.to_s, su.mb_chars.downcase.to_s, "With active_support mb_chars"
$ ruby -KU test.rb
@ 1.8.7 UTF8
Plain ruby : IñTëRNâTIôNàLIZæTIøN / iÑtËrnÂtiÔnÀlizÆtiØn …Run Code Online (Sandbox Code Playgroud) 是否可以在Ruby中设置float的显示精度?
就像是:
z = 1/3
z.to_s #=> 0.33333333333333
z.to_s(3) #=> 0.333
z.to_s(5) #=> 0.33333
Run Code Online (Sandbox Code Playgroud)
或者我必须覆盖to_s方法Float?
在ruby 1.9中有没有办法用新语法定义这个哈希?
irb> { a: 2 }
=> {:a=>2}
irb> { a-b: 2 }
SyntaxError: (irb):5: syntax error, unexpected tLABEL
{ a-b: 2 }
^
Run Code Online (Sandbox Code Playgroud)
与旧的,它的工作:
irb> { :"a-b" => 2 }
=> {:"a-b"=>2}
Run Code Online (Sandbox Code Playgroud) 我想知道是否有办法在rails3中找到表中的最新记录?
谢谢
埃利奥特
我有两个阵列:
members = ["Matt Anderson", "Justin Biltonen", "Jordan Luff", "Jeremy London"]
instruments = ["guitar, vocals", "guitar", "bass", "drums"]
Run Code Online (Sandbox Code Playgroud)
我想要做的是组合这些,以便生成的数据结构像这样的哈希:
{"Matt Anderson"=>["guitar", "vocals"], "Justin Biltonen"=>"guitar", "Jordan Luff"=>"bass", "Jeremy London"=>"drums"}
Run Code Online (Sandbox Code Playgroud)
请注意,"Matt Anderson"的值现在是数组而不是字符串.任何Ruby巫师都在关注这个问题吗?
我知道几乎按照我想要的方式Hash[*members.zip(instruments).flatten]将它们组合在一起,但是首先将"吉他,人声"字符串转换为数组呢?谢谢.
我正在尝试将From线路一直匹配到以下行的末尾Subject:
....
From: XXXXXX
Date: Tue, 8 Mar 2011 10:52:42 -0800
To: XXXXXXX
Subject: XXXXXXX
....
Run Code Online (Sandbox Code Playgroud)
到目前为止,我有:
/From:.*Date:.*To:.*Subject/m
Run Code Online (Sandbox Code Playgroud)
但这与主题行的结尾不符.我尝试添加,$但没有效果.
我正在使用carrierwave gem上传文件.
我已经构建了一个系统,供用户将图像标记为不合适,并且管理员可以删除图像.据我所知,在图像上调用destroy只会从表中删除路径名.
有没有办法让carrierwave实际删除文件本身?或者当我销毁图像路径时,rails会自动删除文件吗?
在写这个问题之前,我查看了这些答案,但无法找到解决方案:
执行rails生成脚手架时出错用户名:string email:string
耙子流产了!用于ActiveRecord :: Base的未定义方法`migration_error =':Class
启动Rails服务器时出错:未定义方法'configure'
当我尝试启动一个新的应用程序(对于 Hartl的教程,第2章),在阶段脚手架开始时,我得到一个错误,如:
**undefined method `configure' for #<SampleApp2::Application:0x00000101a74610> (NoMethodError)**
Run Code Online (Sandbox Code Playgroud)
但是由于上面的例子,我编辑了development.rb文件:
DemoApp::Application.configure do
Run Code Online (Sandbox Code Playgroud)
(是的,我的应用程序名为demo_app,所以我改名了).
之后,我尝试再次运行scaffold,但遇到了一个新错误:
**method_missing': undefined method raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)**
Run Code Online (Sandbox Code Playgroud)
对类似情况的回应表明了一种迁移方法 - 它应该从文件development.rb中删除.同样,我试图在这个文件中找到raise_in_transactional_callbacks方法,但它不存在!另外,我会说在cmd中生成的完整代码非常大:
C:\Sites\demo_app>rails generate scaffold User name:string email:string
invoke active_record
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/dynamic_matchers.rb:22:in `method_missing': undefined method `raise_in_transactional_callbacks=' for ActiveRecord::Base:Class (NoMethodError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:166:in `block (3 levels) in <class:Railtie>'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:165:in `each'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.2/lib/active_record/railtie.rb:165:in `block (2 levels) in <class:Railtie>'
…
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-4.0.2/lib/rails/commands.rb:48:in …Run Code Online (Sandbox Code Playgroud) 我正在使用ruby,我得到了一个带有一些ruby程序的zip文件,它说:在文件夹中,运行bundle install以安装所需的软件包.
当我在终端中运行命令时,它说bundle command not found.
有人可以给我详细说明如何解决这个问题吗?
有没有人解决这个问题Ruby 2.7.0?
我使用rbenv并安装了 Ruby v2.7.0,然后使用Rails v6.0.2.1.
目前,通过运行其中之一
rails s
rails s -u puma
rails s -u webrick
Run Code Online (Sandbox Code Playgroud)
服务器已启动并且站点已提供服务,但在Console日志中我看到两条警告消息:
local:~/rcode/rb27$ rails s
=> Booting Puma
=> Rails 6.0.2.1 application starting in development
=> Run `rails server --help` for more startup options
.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/actionpack-6.0.2.1/lib/action_dispatch/middleware/stack.rb:37: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/actionpack-6.0.2.1/lib/action_dispatch/middleware/static.rb:110: warning: The called method `initialize' is defined here
Puma starting in single …Run Code Online (Sandbox Code Playgroud)