草庐IT

castle-activerecord

全部标签

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

ruby-on-rails - ActiveRecord 枚举返回 nil,即使它有值

我有一个枚举,它有一个存储值,但getter返回nil。我有以下代码:classProperty如果我在控制台中执行以下操作:Property.last我明白了PropertyLoad(0.8ms)SELECT"properties".*FROM"properties"ORDERBY"properties"."id"DESCLIMIT1=>#但如果我这样做Property.last.building_type我明白了PropertyLoad(0.5ms)SELECT"properties".*FROM"properties"ORDERBY"properties"."id"DESCLIM

ruby-on-rails - 如何对所有 ActiveRecord 模型使用通用的 named_scope

你好,如何构建对所有模型通用的命名范围。 最佳答案 我通过将这段代码放在lib/has_common_named_scopes.rb中来做到这一点:moduleHasCommonNamedScopesdefself.included(base)base.class_eval{#Namedscopesnamed_scope:newest,:order=>"#{base.table_name}.created_atDESC"named_scope:freshest,:order=>"#{base.table_name}.updated_

ruby - 从 ActiveRecord 迁移中读取 database.yml

如何在ActiveRecord迁移中访问database.yml的内容?具体来说,我需要要迁移的数据库的database键的值。 最佳答案 db=YAML.load_file("#{RAILS_ROOT}/config/database.yml")[RAILS_ENV]['database'] 关于ruby-从ActiveRecord迁移中读取database.yml,我们在StackOverflow上找到一个类似的问题: https://stackoverf

ruby - 如何将 apache 日志时间转换为 activerecord :datetime

我想通过ActiveRecord将apache日志保存到MySQL。在apache日志中,默认时间字符串如下:[13/Aug/2008:00:50:49-0700]如何将其转换为ActiveRecord:datetime类型?谢谢! 最佳答案 apache_time="[13/Aug/2008:00:50:49-0700]"d=DateTime.strptime(apache_time,"[%d/%b/%Y:%H:%M:%S%Z]")格式字符串记录在此处:http://ruby-doc.org/core/classes/Time.s

ruby - 我可以使用 AREL/ActiveRecord 更优雅地编写此查询吗?

我能否使用AREL/ActiveRecordAPI将此查询写得更短和/或更优雅?Foo.where("(barisnotnullandbar!='')or(bazisnotnullandbaz!='')") 最佳答案 您可以直接对Arel执行OR运算符,但语法不是很漂亮并且可能有点难以阅读。这是它在arel中的样子:foo=Foo.arel_tableFoo.where(foo[:bar].not_eq(nil).and(foo[:bar].not_eq('')).or(foo[:baz].not_eq(nil).and(foo[:

ruby-on-rails - 私有(private)方法 `test' 调用 #<ActiveRecord::ConnectionAdapters::TableDefinition:0x7f2a8fb07c30>

关闭。这个问题是notreproducibleorwascausedbytypos.它目前不接受答案。这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这个问题的解决方式不太可能帮助future的读者。关闭3年前。Improvethisquestion有没有人可以看看。我对此感到困惑。非常感谢你。[river@localhostdemo04]$rakedb:migrate--traceWARNING:'require'rake/rdoctask''isdeprecated.Pleaseuse'require'rdoc/task'(inRDoc2.