草庐IT

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

ruby-on-rails - 当还使用 after_initialize 回调时,如何解决 ActiveRecord (Rails 3) 中的 n+1 查询问题?

型号:classProject查找项目的语句:@projects=Project.includes(:user_roles)所以你可以看到,我告诉它在查询中包含用户角色关联。但是,我仍然看到n+1查询问题:它为每个项目找到一次角色。如果我从回调中删除self.user_roles的使用并查看日志,我可以看到它在2个查询中找到项目及其用户角色-一个用于项目,一个用于项目对于使用project_idin(1,2,3,4,5...,n)的角色。有没有办法解决这个问题?让我稍微澄清一下:虽然我愿意根据需要解决我的具体情况,但我更喜欢侧重于如何解决一般问题的答案。我能够编写一个kludge来获取

ruby-on-rails - 如何按列对 Rails ActiveRecord 结果进行分组?

我正在开发一个时间跟踪应用程序,遇到了一个我不知道如何解决的问题。我有一个Task模型和一个Client模型。每个任务都属于一个客户端。classTask{where('start>?',Date.yesterday.to_time).where('start现在我正在显示任务列表,任务范围按任务完成日期划分,并按完成时间排序。我想显示相同的列表,但按客户端分组,并按客户端名称排序。这是我想做的:在我的Controller中,我目前有:@tasks_yesterday=Task.yesterday@yesterday_clients=group_tasks_by_client@task

ruby - 没有 rails 的 ActiveRecord 模式转储

在rails中,您可以设置一个rails应用程序,分配正确的数据库驱动程序(我需要firebird/fb),然后几乎开箱即用地执行rakedb:schema:dump。我正在尝试对我的数据库架构进行版本控制。我怎样才能制作一个需要activerecord和fb库的ruby​​脚本并实现同样的事情。我不需要整个Rails应用程序。我想要的只是一个用于提取架构的一致脚本。 最佳答案 查看thesourceofthedb:schema:dumptask,下面的代码应该可以帮助您入门:require'active_record'requir

ruby-on-rails - 在 Ruby on Rails 中如何通过键访问对象的 (ActiveRecord::Relation) 值?

tl;dr如何使用对象的键获取对应的值?我不明白为什么Atag.where(tag:'brand')给了我一个我称之为对象的东西,因为没有更好的术语:#]>但我很难访问键:id的相应值。Atag.where(tag:'brand').id和Atag.where(tag:'brand')[:id]和Atag.where(tag:'brand')(:id)所有都抛出错误,而在这种情况下,我只是想返回整数1。我似乎无法使用ruby​​,也无法通过我的google搜索技能(或缺乏)找到这个基本问题的简洁答案。谢谢 最佳答案 来自OdinPr