标签: ruby

如何HTML编码/转义字符串?有内置的吗?

我有一个不受信任的字符串,我想在HTML页面中显示为文本.我需要以HTML实体的形式逃避字符' <'和' &'.越少越好.

我正在使用UTF8,并且不需要其他实体用于重音字母.

Ruby或Rails中是否有内置函数,或者我应该自己编写?

html ruby encode escaping ruby-on-rails

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

如何在Ruby中将DateTime.now转换为UTC?

如果有d = DateTime.now,我如何将'd'转换为UTC(具有适当的日期)?

ruby

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

ActiveRecord.find(array_of_ids),保留顺序

当你Something.find(array_of_ids)在Rails中,所得到的数组的顺序不依赖的顺序array_of_ids.

有没有办法找到并保存订单?

ATM我根据ID的顺序手动对记录进行排序,但这有点蹩脚.

UPD:如果可以使用:orderparam和某种SQL子句指定顺序,那么如何?

ruby activerecord ruby-on-rails

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

将String转换为DateTime

我需要将以下String解析为DateTime对象:
30/Nov/2009:16:29:30 +0100

是否有捷径可寻?

PS:我想按原样转换上面的字符串.年后的冒号不是拼写错误.我也想用Ruby而不是RoR解决问题.

ruby time parsing date

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

rails 3的验证自定义消息

Rails引入了验证模型内属性的新方法.我用的时候

validates :title, :presence => true
Run Code Online (Sandbox Code Playgroud)

它工作,但当我尝试添加自定义消息

validates :title, :presence => true,:message => "Story title is required"
Run Code Online (Sandbox Code Playgroud)

生成错误

Unknown validator: 'message'
Run Code Online (Sandbox Code Playgroud)

ruby validation activerecord ruby-on-rails ruby-on-rails-3

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

以DRY方式将多个错误类传递给ruby的救援条款

我有一些代码需要在ruby中拯救多种类型的异常:

begin
  a = rand
  if a > 0.5
    raise FooException
  else
    raise BarException
  end
rescue FooException, BarException
  puts "rescued!"
end
Run Code Online (Sandbox Code Playgroud)

我想做的是以某种方式存储我想要在某处救援的异常类型列表,并将这些类型传递给rescue子句:

EXCEPTIONS = [FooException, BarException]
Run Code Online (Sandbox Code Playgroud)

然后:

rescue EXCEPTIONS
Run Code Online (Sandbox Code Playgroud)

这是否可能,并且可能没有一些真正的黑客调用eval?鉴于我在TypeError: class or module required for rescue clause尝试上述内容时所看到的情况,我并不抱希望.

ruby exception rescue

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

将对象数组转换为ActiveRecord :: Relation

我有一个对象数组,我们称之为Indicator.我想def self.subjects在这个数组上运行Indicator类方法(变种类,范围等).我知道在一组对象上运行类方法的唯一方法是让它们成为ActiveRecord :: Relation.所以我最终要求添加一个to_indicators方法Array.

def to_indicators
  # TODO: Make this less terrible.
  Indicator.where id: self.pluck(:id)
end
Run Code Online (Sandbox Code Playgroud)

有时我会链接相当多的这些范围来过滤类方法中的结果.所以,即使我在ActiveRecord :: Relation上调用一个方法,我也不知道如何访问该对象.我只能通过它来获取它的内容all.但是all是一个数组.那么我必须将该数组转换为ActiveRecord :: Relation.例如,这是其中一种方法的一部分:

all.to_indicators.applicable_for_bank(id).each do |indicator|
  total += indicator.residual_risk_for(id)
  indicator_count += 1 if indicator.completed_by?(id)
end
Run Code Online (Sandbox Code Playgroud)

我想这可以归结为两个问题.

  1. 如何将对象数组转换为ActiveRecord :: Relation?最好不要where每次都做.
  2. def self.subjectsActiveRecord :: Relation上运行类型方法时,如何访问ActiveRecord :: Relation对象本身?

谢谢.如果我需要澄清任何事情,请告诉我.

ruby activerecord ruby-on-rails

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

红宝石,!! 操作员(a/k/a the double-bang)

可能重复:
什么!! 红宝石意味着什么?

嗨,

我是Ruby的新手,无法找到什么"!!"的描述 手段.

这是一个例子:

def signed_in?
  !!current_user
end
Run Code Online (Sandbox Code Playgroud)

如果这是双重否定,为什么不说:

def signed_in?
  current_user
end
Run Code Online (Sandbox Code Playgroud)

请帮忙.

ruby operators

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

如何从字符串中删除非字母数字字符并保留空格?

我想创建一个正则表达式,删除所有非字母数字字符,但保留空格.这是为了在搜索输入到db之前清理搜索输入.这是我到目前为止所拥有的:

@search_query = @search_query.gsub(/[^0-9a-z]/i, '')
Run Code Online (Sandbox Code Playgroud)

这里的问题是它删除了所有空格.如何保留空间的解决方案?

ruby regex ruby-on-rails ruby-on-rails-3

92
推荐指数
2
解决办法
6万
查看次数

如何在10.10 Yosemite上安装therubyracer gem?

我无法在Yosemite 10.10上安装therubyracer gem.

这是日志:

11:53  $ gem install libv8 -v '3.16.14.3' -- --with-system-v8


Building native extensions with: '--with-system-v8'
This could take a while...
Successfully installed libv8-3.16.14.3
Parsing documentation for libv8-3.16.14.3
Installing ri documentation for libv8-3.16.14.3
Done installing documentation for libv8 after 0 seconds
1 gem installed


02:05  $ gem install therubyracer -v '0.12.1' -- --with-system-v8


Building native extensions with: '--with-system-v8'
This could take a while...
ERROR:  Error installing therubyracer:
    ERROR: Failed to build gem native extension.

    /usr/local/var/rbenv/versions/2.1.2/bin/ruby extconf.rb --with-system-v8
checking …

ruby gem rubygems

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