草庐IT

activeRecord

全部标签

ruby - 尝试保存大(ish)整数值时出现错误指示数字为 "out of range for ActiveRecord::Type::Integer with limit 4"

我在我的Ruby应用程序中使用SQLite+ActiveRecord,这是我在尝试将大数字写入整数字段时遇到的错误:1428584647765isoutofrangeforActiveRecord::Type::Integerwithlimit4但是根据SQLite文档:Thevalueisasignedinteger,storedin1,2,3,4,6,or8bytesdependingonthemagnitudeofthevalue.8个字节足以存储整数1428584647765,那么为什么ActiveRecord会给我一个错误?为什么它认为这是一个4字节的字段?

ruby-on-rails - 按指定顺序按 id 查找 ActiveRecord 对象的简洁方法

我想在给定一组id的情况下获得一组ActiveRecord对象。我以为Object.find([5,2,3])将返回一个数组,依次为对象5、对象2、对象3,但我得到的数组顺序为对象2、对象3,然后是对象5。ActiveRecord库findmethodAPI提到您不应该按照提供的顺序期望它(其他文档没有给出此警告)。Findbyarrayofidsinthesameorder?中给出了一个潜在的解决方案,但顺序选项似乎对SQLite无效。我可以自己编写一些ruby​​代码来对对象进行排序(要么比较简单但缩放比例不佳,要么缩放比例更好但更复杂),但是有更好的方法吗?

ruby-on-rails - 按指定顺序按 id 查找 ActiveRecord 对象的简洁方法

我想在给定一组id的情况下获得一组ActiveRecord对象。我以为Object.find([5,2,3])将返回一个数组,依次为对象5、对象2、对象3,但我得到的数组顺序为对象2、对象3,然后是对象5。ActiveRecord库findmethodAPI提到您不应该按照提供的顺序期望它(其他文档没有给出此警告)。Findbyarrayofidsinthesameorder?中给出了一个潜在的解决方案,但顺序选项似乎对SQLite无效。我可以自己编写一些ruby​​代码来对对象进行排序(要么比较简单但缩放比例不佳,要么缩放比例更好但更复杂),但是有更好的方法吗?

ruby-on-rails - 分组错误 : ERROR: column must appear in the GROUP BY clause or be used in an aggregate function

我的Controller中有代码按最高平均评论评级对专辑进行排名(使用此解决方案中的代码Howtodisplayhighestratedalbumsthroughahas_manyreviewsrelationship):@albums=Album.joins(:reviews).select("*,avg(reviews.rating)asaverage_rating").group("albums.id").order("average_ratingDESC")此代码在我的开发环境(sqlite3)中完美运行,但是当我将代码推送到heroku和postgresql时,出现此错误:P

ruby-on-rails - 分组错误 : ERROR: column must appear in the GROUP BY clause or be used in an aggregate function

我的Controller中有代码按最高平均评论评级对专辑进行排名(使用此解决方案中的代码Howtodisplayhighestratedalbumsthroughahas_manyreviewsrelationship):@albums=Album.joins(:reviews).select("*,avg(reviews.rating)asaverage_rating").group("albums.id").order("average_ratingDESC")此代码在我的开发环境(sqlite3)中完美运行,但是当我将代码推送到heroku和postgresql时,出现此错误:P

ruby - 如何增加 ActiveRecord 中的最大池大小?

我得到错误:Error"ActiveRecord::ConnectionTimeoutError-couldnotobtainadatabaseconnectionwithin5seconds.Themaxpoolsizeiscurrently5;considerincreasingit."如何增加最大池大小?#DBCONNECTIONDB_CONN=ActiveRecord::Base.establish_connection(:adapter=>"sqlite3",:dbfile=>DB_FILE) 最佳答案 config/da

ruby - 如何增加 ActiveRecord 中的最大池大小?

我得到错误:Error"ActiveRecord::ConnectionTimeoutError-couldnotobtainadatabaseconnectionwithin5seconds.Themaxpoolsizeiscurrently5;considerincreasingit."如何增加最大池大小?#DBCONNECTIONDB_CONN=ActiveRecord::Base.establish_connection(:adapter=>"sqlite3",:dbfile=>DB_FILE) 最佳答案 config/da

ruby-on-rails - Rails SQL 正则表达式

我正在尝试搜索A0001、A0002、A1234、A2351等系列中的最大数字...问题是我正在搜索的列表中也有AG108939、E092357、AL399等字符串,22-30597等...基本上,我想要数据库中最高的A####值。我正在使用以下查询:@max_draw=Drawing.where("drawing_numberLIKE?","A%")它一直有效,直到AG309等数字开始出现问题,因为它以A开头,但格式与我正在寻找的格式不同。我假设这对于正则表达式应该非常简单,但我是新手,不知道如何使用正则表达式正确编写此查询。以下是我尝试过的一些只返回nil的东西:@max_draw

ruby-on-rails - Rails SQL 正则表达式

我正在尝试搜索A0001、A0002、A1234、A2351等系列中的最大数字...问题是我正在搜索的列表中也有AG108939、E092357、AL399等字符串,22-30597等...基本上,我想要数据库中最高的A####值。我正在使用以下查询:@max_draw=Drawing.where("drawing_numberLIKE?","A%")它一直有效,直到AG309等数字开始出现问题,因为它以A开头,但格式与我正在寻找的格式不同。我假设这对于正则表达式应该非常简单,但我是新手,不知道如何使用正则表达式正确编写此查询。以下是我尝试过的一些只返回nil的东西:@max_draw

ruby-on-rails - Rails 获取序列化模型记录

我正在设置一个Redis存储,其中我的sessionuser_id值存储在cookie中,其余模型数据(first_name、last_name、用户名等)存储在redis中。我是Redis的新手,我不确定如何存储模型数据。我有两个问题:最好的存储方式是什么,我应该将其序列化为XML、JSON还是等效的ruby​​对象。获取存储的数据后,如何将其转换为工作模型对象?这样,当我执行user_fetched_from_redis.username时,它​​就会像user_fetched_from_db.username一样工作。如果有任何字段不是从redis存储中获取的,那么我希望acti