在我当前的Rails程序中,当我使用类似的东西时user=User.find(10)当没有ID=10的用户时,我会有如下异常:ActiveRecord::RecordNotFound:Couldn'tfindUserwithID=10我可以得到nil而不是引发异常吗,所以当我做类似的事情时:unlessuser=Challenge.find(10)puts"someerrormsg"end我只想在没有记录的时候得到nil,我不想使用begin/rescue谢谢 最佳答案 是的,只是做:Challenge.find_by_id(10)
当您在Rails中执行Something.find(array_of_ids)时,结果数组的顺序不取决于array_of_ids的顺序。有什么办法可以找到并保留顺序吗?ATM我根据ID的顺序手动对记录进行排序,但这有点蹩脚。UPD:如果可以使用:order参数和某种SQL子句指定顺序,那么如何? 最佳答案 奇怪的是,没有人提出这样的建议:index=Something.find(array_of_ids).group_by(&:id)array_of_ids.map{|i|index[i].first}除了让SQL后端执行它之外,尽
当我尝试执行bundlerupdate时出现此错误:.rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in`to_specs':Couldnotfindbundler(>=0)amongst[rake-0.8.7,rake-0.8.7,rubygems-update-1.8.4](Gem::LoadError)我是Ruby的新手,有人能告诉我这是什么原因吗?安装了Rake0.8.7。 最佳答案 如果您安装了bundlerge
如何在Rails5ActiveRecord中执行或查询?此外,是否可以在ActiveRecord查询中将or与where链接起来? 最佳答案 在ActiveRecord查询中将or子句与where子句链接起来的能力将在Rails5。查看relateddiscussionandthepullrequest.因此,您将能够在Rails5中执行以下操作:获取id1或2的post:Post.where('id=1').or(Post.where('id=2'))其他一些例子:(A&&B)||C:Post.where(a).where(b).
我觉得有一种简单/内置的方法可以做到这一点,但我找不到。我有一个整数的持续时间(以秒为单位),我想以一种友好的格式显示它。例如3600将显示为“01:00:00”或“1小时”或其他内容。我可以用time_ago_in_words(Time.zone.now+3600)来做到这一点,但这感觉有点像hack,没有理由只是为了格式化而从当前时间中添加/减去这个值。是否有duration_in_words()之类的东西?谢谢 最佳答案 总结:假设total_seconds=3600选项1:distance_of_time_in_words(
我是否遗漏了Array文档中的某些内容?我有一个数组,其中最多包含一个满足特定条件的对象。我想有效地找到那个对象。我从文档中得到的最好的想法是:candidates=my_array.select{|e|e.satisfies_condition?}found_it=candidates.firstif!candidates.empty?但我不满意有两个原因:select让我遍历了整个数组,尽管我们本可以在第一次命中后放弃。我需要一行代码(带有条件)来压扁候选人。这两种操作都是浪费的,因为预先知道有0或1个令人满意的对象。我想要的是这样的:array.find_first(block)
更新RMagick和Imagemagick是一种痛苦的经历。我已经将Mac上的Imagemagick版本(MacOSElCapitan版本10.11.5)更新为Ruby2.3中一个项目的自制程序到6.9.5-9$convert--versionVersion:ImageMagick6.9.5-9Q16x86_642016-09-09现在,Ruby1.8.7中的一个旧项目拒绝使用错误消息“此RMagick安装是使用ImageMagick6.8.9配置的,但ImageMagick6.9.5-9正在使用中”。因此我卸载了“rmagick”,但无法再次安装$geminstallrmagick-
我们可以这样做:i=Time.now.to_i例如电流:i=1274335854我可以将i转换回时间吗? 最佳答案 使用Time.at:t=Time.at(i) 关于ruby-on-rails-ruby/rails:convertinttotimeORgettimefrominteger?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2871402/
这个问题在这里已经有了答案:Differencebetween"and"and&&inRuby?(8个答案)关闭3年前。Ruby中的or和||运算符有什么区别?还是只是偏好?
我使用了sudobundleinstall,这可能是问题的原因?现在我有:gem-v2.6.14ruby-vruby2.3.5p376(2017-09-14修订版59905)[x86_64-darwin15]jekyll-vjekyll3.6.2bundle-vBundler版本1.16.0.pre.3尝试运行bundleexecjekyllserve或只是jekyllserve时出现以下错误/Users/myusername/.rvm/rubies/ruby-2.3.5/lib/ruby/site_ruby/2.3.0/rubygems.rb:271:in`find_spec_f