草庐IT

castle-activerecord

全部标签

ruby-on-rails - Rails/ActiveRecord 按月+年分组

我有一个Albums表,其中有一个名为release_date的date列。我想获得所有月份+年份组合的列表以及该月份/年份发行的专辑数量。所以,输出可能是这样的:2016年11月-11日2016年10月-42016年7月-19日2015年12月-2Ruby2.3.1w/Rails5onPostgres9.6,FWIW。 最佳答案 数据库层是这个任务所属的地方,而不是Ruby:Album.group("TO_CHAR(release_date,'MonthYYYY')").count为什么要使用数据库层?仅仅因为它比几乎任何其他东西

ruby-on-rails - Rails - update_column 和 ActiveRecord 枚举

我需要在我的Rails应用程序中使用update_column来防止运行回调。我有带枚举的ActiveRecord模型:classCar在正常情况下(即当我确实希望回调运行时)我可以使用类似的东西:@car.update_attribute:state,:not_used是否可以用update_column做类似的事情?我正在使用Rails4.2 最佳答案 update_column不将符号识别为枚举的变体。我认为您必须使用Car.states[:not_used]而不是:not_used。像这样:@car.update_colum

ruby - 创建 ActiveRecord 模型时出现问题 : data missing from save

我在开发的Sinatra应用程序中使用ActiveRecord在数据库中创建新模型行时遇到问题。正在创建有问题的对象,没有任何错误(使用保存!,没有引发异常),但我为保存指定的大部分数据都不存在。classProjectMeta对来self正在发送的项目对象以及我正在创建的新元对象的数据的所有检查都表明数据存在。但是当我在保存前后执行meta.inspect时,它显示所有数据(project_id除外)都处于默认状态(零)。我还检查了meta.errors.nil?果然,保存后没有任何错误。最令人费解的是,如果我回过头来获取一个具有该project_id的新元实例并将数据放入其中,那么

ruby - 覆盖 ActiveRecord 中的所有表名约定

我的项目没有在表名中使用复数约定。我怎样才能覆盖这个约定无需在我所有的ActiveRecord类中调用set_table_name 最佳答案 您必须像这样在您的Rails项目中创建一个初始化程序:#file:config/initializers/active_record_extensions.rbActiveRecord::Base.pluralize_table_names=false这将使您的所有表名在您的模型中默认为单数。 关于ruby-覆盖ActiveRecord中的所有表名

ruby-on-rails - ActiveRecord:产生多行人性化的json

我使用ActiveRecord::Base.to_json:user=User.find_by_name'Mika'{"created_at":"2011-07-10T11:30:49+03:00","id":5,"is_deleted":null,"name":"Mika"}现在,我想要的是:{"created_at":"2011-07-10T11:30:49+03:00","id":5,"is_deleted":null,"name":"Mika"}有没有办法做到这一点?最好有一个全局选项,以便根据开发/实时环境设置行为。 最佳答案

ruby-on-rails - 单表继承在 Rails 4 应用程序中不起作用 - ActiveRecord::SubclassNotFound:单表继承机制失败

我有一个新的Rails4应用程序,我在STI配置中创建了一些模型。主要模型称为Order,它继承自ActiveRecord::Base。这是它的样子:classOrder{where(type:'remote')}scope:locals,->{where(type:'local')}end另外两个模型位于models/orders的文件夹中,它们分别称为Remote和Local,它们都继承自顺序订单迁移文件如下所示:defchangecreate_table:ordersdo|t|t.string:source_url,null:falset.string:final_url,nul

ruby-on-rails - ActiveRecord::UnknownAttributeError(未知属性:作者姓名):

我的heroku-server出现了一些问题。在本地没有遇到这个问题:2014-07-23T16:59:23.249055+00:00app[web.1]:ActiveRecord::UnknownAttributeError(unknownattribute:authorname):2014-07-23T16:59:23.249058+00:00app[web.1]:app/controllers/chapters_controller.rb:5:in`create'我的Controller:classChaptersController我刚刚添加了作者姓名railsgmigrati

ruby-on-rails - Rails - ActiveRecord 包含多个级别

参见下面的关联:classContinent我如何从Person.includes()开始,并在查询数据库时一直包含关联到大陆。我已经能够通过.includes(addresses::country)包含国家/地区,但似乎没有达到最后一级。 最佳答案 您可以再添加1级哈希:.includes(addresses:{country::continent}) 关于ruby-on-rails-Rails-ActiveRecord包含多个级别,我们在StackOverflow上找到一个类似的问题

ruby-on-rails - Activerecord 关联问题 : getting has_many :through to work

我正在用RubyonRails构建一个应用程序,我包括了我的3个模型(及其迁移脚本)来展示我正在尝试做什么,以及什么不起作用。概要如下:我的应用程序中有属于团队的用户,每个团队可以有多个教练。我希望能够提取适用于用户的教练列表。例如,用户A可能属于团队T1和T2。T1和T2队可以各有四名不同的教练,以及一名共同的教练。我希望能够通过简单地说:u=User.find(1)coaches=u.coaches这是我的迁移脚本,以及我模型中的关联。我在设计中做错了什么吗?我的联想是否正确?classCreateUsersnilt.column:firstname,:string,:defaul

ruby-on-rails - 在 before_save Hook 中更改 ActiveRecord 属性值

我需要修复ActiveRecord属性的编码,并决定在before_saveHook中进行。在这一点上,我注意到了一个意想不到的功能。当我想更改属性的值时,简单地使用attribute_name=XY并没有像我预期的那样工作。而不是我需要使用self[:attribute_name]=XY。到目前为止还没有识别出这种行为,我使用了AR.attribute_name=XY。这是什么原因?这种行为与钩子(Hook)或其他东西有关吗?感谢您的解释。 最佳答案 这实际上是Ruby的“特性”:defvalue=(x)pxenddefrunva