高性能数据库开发

如何使用Rails的4强参数与的has_many:通过关联?

我无法得到一个的has_many:通过联合使用Rails工作4强大的参数。我有一个名为结帐模式,我需要选择一个人从员工模式,在新的结算形式。检出,并且员工通过一个工作模型相关联。 当我尝试创建一个新的结帐我得到这个错误: NoMethodError在CheckoutsController#创建 未定义的方法'员工'的#<结帐:0x007ff4f8d07f88> 好像有什么 ..

在轨道3批量插入

我想要做的几千元记录批量插入到从我的Rails应用程序的数据库(在我的情况POSTGRES)。 什么是做它的“Rails的方式”? 东西是做它的速度快,也是正确的方式。 我知道我可以创建属性字符串连接的SQL查询,但我希望有一个更好的办法。 解决方案 ActiveRecord的只是通过一组选项。 #创建新对象的数组 User.create([{:FIRST_NAME =>“杰米”} ..

Rails的创建或更新的魔法?

我有一类叫做 CachedObject ,其存储的通用序列化对象收录的关键。我想这个类来实现一个 create_or_update 方法。如果一个对象被发现,将更新它,否则会造成一个新的。 有没有办法做到这一点在Rails的还是我写我自己的方法? 解决方案 您可以使用 find_or_initialize 或 find_or_create 例如,在轨道4语法: 用户= User.find ..
发布时间:2015-11-28 18:27:33 高性能数据库开发

Rails的belongs_to的很多车型

我没有找到SO Rails的协会是有点像我的问题了一些问题,但对我的生活中,我似乎无法理解如何使用 belongs_to的多个模型。 这里的表结构的我打算有: 用户 ID 帖子 ID user_id说明#foreign关键;后属于用户又名“谁创造了这个帖子” 评论 ID user_id说明#foreign关键;评论属于用户又名“谁言此评论” 的post_id #foreign关 ..
发布时间:2015-11-28 18:27:28 高性能数据库开发

轨道3跳过验证和回调

我有一个特别复杂的模型定义的验证和回调。现在的业务需求要求一个特定的场景,添加新记录,需要跳过验证和回调。什么是做到这一点的最好方法是什么? 解决方案 这工作在Rails 3的: Model.skip_callback(:创建) model.save(:验证=>假) Model.set_callback(:创建) ( API文档和的有关问题) ..

Rails的搜索与可选参数?

我将如何做时,搜索可以提供许多可选参数,如身份证,邮编,城市和国家数据库的搜索?这些可以有价值观是完全空白的。我将如何做一个滑轨查询这样呢? 解决方案 通常的建议是将逻辑模型,并保持控制器精益越好。有些方法为模型:第一个,写了过滤器类方法,通过键/值实现搜索: 类记录<的ActiveRecord :: Base的 高清self.filter(属性) attributes.r ..
发布时间:2015-11-28 18:27:21 高性能数据库开发

如何创建一个完整的审计日志中的Rails的每个表?

我们最近推出了一种符合推在我们公司,都必须保持其目前在Rails应用程序管理的改变我们的数据的完整历史记录。我们已经得到了确定,简单地推入了一些描述性的每一个动作到一个日志文件,这是一个非常不显眼的路要走。 我的倾向是做这样的事情在的ApplicationController : around_filter:set_logger_username 高清set_logger_username ..

如何Rails的ActiveRecord的链QUOT;其中"条款没有多个查询?

我是一个PHP开发人员学习Ruby on Rails的awesomne​​ss,我爱的ActiveRecord,我发现了一些非常有趣的,这是ActiveRecord的方法如何检测方法链的末端执行查询。 @person = Person.where(名称:“杰森”)。其中,(年龄:26) #愚见想象我会觉得每其中()执行数据库查询 #但在现实中,它没有,直到链上的最后一个方法 这是如何 ..
发布时间:2015-11-28 18:27:16 高性能数据库开发

删除一切从所有表(在ActiveRecord的)

我可以做 Post.delete_all 全部删除我的帖子,但如果我要删除所有帖子,评论,博客等即,我怎么遍历在我所有的模型和运行 DELETE_ALL 的方法? 解决方案 耙分贝:重设 据重现从迁移你的表。 由于建议的意见,更快的方式做到这一点(但你要添加一个新的rake任务)是: 命名空间:DB做 DESC“截断所有表” 任务:截断=> :环境做 康恩= ..
发布时间:2015-11-28 18:27:13 高性能数据库开发

我怎样才能动态改变在Ruby on Rails的所有型号的活动记录数据库?

在我们的程序中,每个客户得到自己的数据库。我们的E-MAIL他们,他们连接到他们的数据库的链接。该链接包含一个GUID,让程序知道要连接到的数据库。 如何动态和编程的ActiveRecord连接到正确的数据库? 解决方案 您还可以自动做到这一点很容易没有任何硬编码和运行迁移: 顾客= CustomerModel.find(ID) 规格= CustomerModel.configuratio ..
发布时间:2015-11-28 18:27:11 高性能数据库开发

扶手:的has_many通过与多态关联 - 将这项工作?

A 人可以有多个活动,每个事件可以有一个多态 Eventable 记录。如何指定关系的人和 Eventable 记录? 下面是我的模型: 类事件<的ActiveRecord :: Base的 belongs_to的:人 belongs_to的:eventable,多态=>真正 结束 一流的膳食与LT;的ActiveRecord :: Base的 HAS_ONE:事件: ..

Rails模型:你将如何创建一个pre定义的一组属性?

我试图找出设计一个铁轨模型的最佳途径。为了这个例子,让我们说我要建字符的数据库,这可能有几个不同的固定属性。例如: 字符 - 道德(可能是“好”或“恶”) - 类型(可能是“行动”,“悬疑”,或“西方”) - 头发颜色(可能是“金发碧眼”,“褐色”,或“黑色”) ...等等。 因此​​,对于人物模型也有,我想主要有可能选择一个固定的名单几个属性。 我希望用户能够创建一个角 ..

Ruby on Rails的复数(控制器)和奇异(模型)约定 - 说明

按照Ruby on Rails的约定,控制器名都使用复数,而模型的名字是单数。例如:一个用户控制器,但用户模型 轨生成器用户 轨生成模式用户名:字符串电子邮件:字符串 现在打开迁移文件 类CreateUsers< ActiveRecord的::迁移 高清变化 CREATE_TABLE:用户做| T | t.string:名称 t.string: ..
发布时间:2015-11-28 18:27:04 高性能数据库开发

删除基于多个列的重复记录?

我使用的Heroku主办我的Ruby on Rails应用程序和一个或那样的原因,我可能有一些重复的行。 有没有办法基础上删除2个或更多的标准重复的记录,但保留了重复征收的只有1记录? 在我的使用情况下,我在我的数据库中的品牌和型号的关系的汽车。 品牌型号 --- --- 姓名姓名 年 修剪 MakeId 我想删除具有相同的 ..

如何返回一个空的ActiveRecord的关系?

如果我有一个lambda一个范围,它需要一个参数,根据参数的值,我可能会知道,不会有任何的比赛,但我还是想回到的关系,而不是一个空数组: 范围:for_users,拉姆达{|用户| users.any? ?其中,(“user_id说明中()?”,users.map(安培;:编号)。加入(“,”)):[]} 我真正想要的是一个“无”的方法,“一切”的对面,即返回仍可链的关系,但结果在查询被 ..
发布时间:2015-11-28 18:26:56 高性能数据库开发

为什么所有的活动记录恨?

据我了解更多有关面向对象,并开始实施各种设计模式,我继续回来的情况下,人们都恨上的活动记录。 通常情况下,人们会说,它并不能很好地扩展(援引Twitter作为其典型的例子) - 但没有人真正解释的的为什么的它没有很好地扩展;和/或如何实现AR的优点没有缺点的(通过相似,但不同的模式?) 希望这不会变成关于设计模式的圣战 - 这一切我想知道的是 **专** 什么是错的活动记录 如果它不能很好地 ..

导轨 - 最佳实践:如何建立相关的HAS_ONE关系

你能告诉我什么是最好的实践创造HAS_ONE关系? f.e。如果我有一个用户模型,它必须有一个配置文件... 我怎么能做到呢? 一个解决方案是: #user.rb 类用户LT;<的ActiveRecord :: Base的 after_create:set_default_association 高清set_default_association self.crea ..