我可以为每个验证本地化错误消息,但是如何为特定模型创建错误.
普通的语言环境如下所示:
en:
mongoid:
errors:
messages:
taken: "It is already taken"
Run Code Online (Sandbox Code Playgroud)
但我想改变user模型的消息:
en:
mongoid:
errors:
messages:
taken: "It is already taken"
user:
taken: "It is already taken. %{link_to 'Remember password', reset_password_path'}"
Run Code Online (Sandbox Code Playgroud) 在我的Rails3模型中,我有两个命名范围:
scope :within_limit, where("wait_days_preliminary <= ? ", ::WAIT_TIME_LIMIT.to_i )
scope :above_limit, where("wait_days_preliminary > ? ", ::WAIT_TIME_LIMIT.to_i )
Run Code Online (Sandbox Code Playgroud)
基于它们的相似性,我很自然地通过反转第一个来定义第二个.
我怎么能在Rails中做到这一点?
我有一系列uniq号码.像这样:[1,2,3,4,7,8,10,12].它可以是未分类的.我需要的是获得这个数组的间隔:
intervals_for [1,2,3,4,7,8,10,12]
#=> "1-4, 7-8, 10,12"
Run Code Online (Sandbox Code Playgroud)
我有自己的解决方案:
def intervals_for(array)
array.sort!
new_array = []
array.each do |a|
if new_array.last and a == new_array.last.last+1
new_array.last << a
else
new_array << [a]
end
end
new_array.map{|a| a.size > 1 ? "#{a.first}-#{a.last}" : a.first}.join(", ")
end
Run Code Online (Sandbox Code Playgroud)
但我认为这里的某个地方更清洁
我通过MapReduce获取了一些id.我按照某些标准对这些ID进行了排序,现在我需要按照这个特定的顺序获取这些对象:
MyModel.find(ids)
Run Code Online (Sandbox Code Playgroud)
对?但它返回的对象不是存储ids的顺序.看起来像是一样的
MyModel.where(:_id.in => ids)
Run Code Online (Sandbox Code Playgroud)
它不会以与存储的id相同的顺序返回获取的对象.
现在我可以做到这一点
ids.map{|id| MyModel.find(id)}
Run Code Online (Sandbox Code Playgroud)
这将完成这项工作,但它会多次敲打数据库.
我有一个包含大量字段和模型验证的表单.
如何返回可能引发的所有可能的验证错误?
我需要它为所有这些编写语言环境.
我想得到一个这样的列表:
password blank
password too_short
password confirmation
login blank
login invalid
email blank
email too_short
email invalid
Run Code Online (Sandbox Code Playgroud)
等等
SELECT (a+b) as c FROM my_table ORDER BY c ASC;
Run Code Online (Sandbox Code Playgroud)
我如何在Mongo中按两列总和订购?
我在Ruby 1.8.7(企业版)上使用Ruby on Rails开发了多年.并且有1.9.2最新版本.
使用1.9.2可以获得哪些好处?编码支持怎么样(我听说过一些问题)?它更快吗?它更稳定吗?等等
目前我即将开始一个新项目.所以我在考虑在生产中使用1.9.2.
我正在打开非常大的YAML文件.这需要一段时间.但是在它打开之后它会打印所有内容 - 而且需要花费很多倍的时间.
那么如何在Ruby控制台中避免打印结果:
data = YAML.load_file( ... ) # some 1GB data file.
Run Code Online (Sandbox Code Playgroud) 我们假设我们有一个由N个节点组成的树.任务是找到树中所有最长的唯一路径.例如,如果树如下所示:
然后树中有三条最长的独特路径:1 - 2 - 3 - 4 - 5,6 - 2 - 3 - 4 - 5和1 - 2 - 6.
我想以编程方式查找并存储给定树的所有此类路径.一种方法是计算树中每对节点之间的路径,然后拒绝任何其他路径中包含的路径.但是,我正在寻找一种有效的方法.我的问题如下:
我想尝试一下的原因是因为我试图解决这个问题:KNODES
ruby ×7
mongodb ×2
algorithm ×1
forms ×1
localization ×1
mongoid ×1
named-scope ×1
tree ×1
validation ×1