草庐IT

ActiveRecord

全部标签

ruby-on-rails - ActiveRecord - 查找其关联计数为 0 的记录

在我的RubyonRails应用程序中,我有以下模型:classSlideGroup我想找到所有孤立的幻灯片组。孤立的幻灯片组是未连接到任何调查的幻灯片组。我一直在尝试以下查询,但它没有返回任何内容,而且我确定我的测试数据库中有孤立记录:SlideGroup.joins(:surveys).group("slide_groups.id,surveys.id").having("count(surveys.id)=?",0)这会生成以下sql查询:SlideGroupLoad(9.3ms)SELECT"slide_groups".*FROM"slide_groups"INNERJOIN"

ruby-on-rails - ActiveRecord 可以远程连接到 PostgreSQL 并保护数据库密码吗?

我在远程VPS服务器(CentOS5)上有一个PostgreSQL数据库,我想通过连接让Rails应用程序从我的本地Mac笔记本电脑连接到它。在我的笔记本电脑上,我安装了ActiveRecordPostgreSQL适配器——postgres(0.7.9.2008.01.28)。我在PostgreSQLdocs中读到:Thepassword-basedauthenticationmethodsaremd5,crypt,andpassword.Thesemethodsoperatesimilarlyexceptforthewaythatthepasswordissentacrossthec

ruby-on-rails - 将默认的 ActiveRecord id 从 0 更改为 1000000

我想将创建对象的最小ID从1更改为1000。因此,当我在Rails中创建我的第一个模型对象时,它获得ID1000而不是1。有没有办法在模式/迁移文件中设置它? 最佳答案 我不熟悉MySQL,但是对于Postgres,你可以在你的迁移文件中做这样的事情:classCreateCustomers请注意,execute方法调用是在create_tableblock之外进行的。 关于ruby-on-rails-将默认的ActiveRecordid从0更改为1000000,我们在StackOver

sql - 带有哈希值的 Activerecord Where

我有一个带有cached_info字段的City模型,它是一个序列化哈希。{:population=>20000,:more_stuff=>....}如果我在Activerecord中进行以下查询。City.where('cached_info[:population]>300').count我回来了...ActiveRecord::StatementInvalid:Mysql2::Error:YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyn

ruby-on-rails - rake 中止! ActiveRecord::Base:Class 的未定义方法 `migration_error='

我正在RubyonRails上开发项目直到现在,我使用的是Rails4,在我遇到gems的无能问题之前一切都很好。我决定回滚到Rails3,更改我的Gemfile,删除Gemfile.lock,所有Rails安装和railties。然后我运行bundleinstall并安装了Rails3.2.13。但是现在当我运行rakedb:create时,一切都还好。当我运行rakedb:migrate时,问题开始了:JeffreeBook:llvookristijonas$rakedb:migrateWARNING:NokogiriwasbuiltagainstLibXMLversion2.8.

ruby-on-rails - Ruby on Rails key ActiveRecord 结果集到哈希

我的RubyonRails4应用程序中有一个简单的ActiveRecord查询,如下所示:ps=PlayerSalary.where(gamedate:date,site_id:site.id).find_all_by_player_id(player_ids)我的问题如下。psset在任何给定时间可能有几百条记录,通常最多300条。我希望能够在遍历player_ids时从中访问记录。像下面这样:player_ids.eachdo|pid|#retrieverecordfrom`ps`whereps.player_id==pidend最快的方法是组织ps通过哈希设置,其中键是playe

sql - ActiveRecord:如果其中至少有一条记录不符合条件,则排除组

我有两个模型:owner和pet。一个主人has_many:pets和一只宠物belongs_to:owner。我想做的是只捕获那些拥有所有重量超过30磅宠物的主人。#app/models/owner.rbclassOwner{where(["weight>?",30])}end这是我的数据库中的内容。我有三个所有者:Neil,所有这些都很重;John,所有这些都不重;Bob,他的一些宠物很重,一些不重。查询应该只返回Neil。现在我的尝试返回Neil和Bob。 最佳答案 您可以为每个owner_id组成一个组并检查,如果组中的所有

ruby-on-rails - Rails 低级缓存 : Update cache when ActiveRecord object updated_at changes OR when a new object is added to collection

Rails附带片段缓存和低级缓存。片段缓存的工作原理非常清楚:Railswillwriteanewcacheentrywithauniquekey.Ifthevalueofupdated_athaschanged,anewkeywillbegenerated.ThenRailswillwriteanewcachetothatkey,andtheoldcachewrittentotheoldkeywillneverbeusedagain.Thisiscalledkey-basedexpiration.Cachefragmentswillalsobeexpiredwhentheviewfr

ruby-on-rails - Rails SQL 查询生成器...或 ActiveRecord 查询生成器

我需要像这样运行sql查询sql='SELECT*FROMusersWHEREid!='+self.id.to_s+'ANDidNOTIN(SELECTartner_idFROMencountersWHEREuser_id='+self.id.to_s+')'sql+='ANDidNOTIN(SELECTuser_idFROMencountersWHEREpartner_id='+self.id.to_s+'ANDpredisposition='+Encounter::Negative.to_s+')'sql+='ANDcfg_sex='+self.sex.to_s+'ANDcfg_c

ruby-on-rails - Activerecord 关联作为 JSON 与 Grape

是否有一种简单的方法可以使用Grape微框架将具有关联的activerecord模型返回为JSON?get'users'doUser.includes(:address)end此代码段无效,User.includes(:address).to_json(include::address)将被编码为JSON两次。(反正自己用to_json方法感觉不太对) 最佳答案 您可能想改用#as_json。所以你可以这样做User.includes(:address).as_json(include::address)这会为您提供哈希而不是jso