【发布时间】:2014-07-07 22:39:20
【问题描述】:
我在 Sinatra 项目中遇到了一些非常奇特的结果。
一切正常,然后今天早上我的 ActiveRecord 调用开始出现错误。
我的第一个电话是从我的国家表中随机获取一行
这失败了:
@randomCountry = Country.where( "name != ?", @countryName ).first( :order => "RANDOM()" )
出现以下错误:
can't convert Hash into Integer
如果我省略 :order,我不会收到错误消息,所以这可行:
@randomCountry = Country.where( "name != ?", @countryName ).first()
但显然不理想,因为它不再是随机的!
然后再往下一点,我得到一个完整的国家列表,如下所示:
@countriesList = Country.find(:all, :order => "name")
以下错误:
Couldn't find all Countries with 'code': (all, {:order=>"name"}) (found 0 results, but was looking for 2)
如果我按名称省略订单:
@countriesList = Country.find(:all)
我收到此错误:
Couldn't find Country with 'code'=all
我的国家有一个 code 的主键,但我以前可以毫无问题地拨打这个电话。
非常感谢尝试调试此问题的任何帮助,如果需要,我可以发布更多详细信息。
【问题讨论】:
-
看这里:api.rubyonrails.org/classes/ActiveRecord/… 看起来 find 方法不支持 :all 。您使用的是哪个版本的 ActiveRecord?
标签: ruby activerecord sinatra