Tag: activerecord

如何在RSpectesting中打开ActiveRecord的SQLdebugging日志logging?

我有我的模型RSpectesting,我想打开SQL ActiveRecord日志logging,就像我在Rails服务器模式中看到的。 怎么做? 我开始我的testing RAILS_ENV=test bundle exec rspec my/test_spec.rb 谢谢

为经纬度修正数据types? (在activerecord中)

我应该将经纬度存储为string还是浮点数(或其他)? (我使用的是rails上的activerecord / ruby​​,如果有的话)。

使用ActiveRecord,是否有办法在after_update期间获取logging的旧值

安装使用一个简单的例子:我有一个表( Totals ),其中包含每个logging的amount列的总和在第二个表( Things )。 当一个thing.amount得到更新时,我想简单地将旧值和新值之间的差异添加到total.sum 。 现在我在self.amount期间减去self.amount并在after_update期间添加after_update 。 这使得WAY对更新成功的信任度过高。 约束:我不想简单地重新计算所有交易的总和。 问题:很简单,我想在after_updatecallback期间访问原始值。 你有什么办法做到这一点? 更新:我要和Luke Francl的想法一起去。 在after_updatecallback期间,你仍然可以访问self.attr_was值,这正是我想要的。 我也决定采用after_update实现,因为我想在模型中保留这种逻辑。 这样,不pipe我今后如何决定更新事务,我都会知道我正在更新事务的总和。 感谢大家的实施build议。

Rails – 最佳实践:如何创build相关的has_one关系

你能告诉我最好的做法是什么创buildhas_one关系? 如果我有一个用户模型,它必须有一个configuration文件… 我怎么能做到这一点? 一个解决scheme是: # user.rb class User << ActiveRecord::Base after_create :set_default_association def set_default_association self.create_profile end end 但是,这似乎不是很干净…任何build议?

用CodeIgniter查询MySQL,select字段为NULL的行

我使用CodeIgniter的Active Record类来查询MySQL数据库。 我需要select一个字段没有设置为NULL的表中的行: $this->db->where('archived !=', 'NULL'); $q = $this->db->get('projects'); 这只返回这个查询: SELECT * FROM projects WHERE archived != 'NULL'; archived字段是DATE字段。 有没有更好的方法来解决这个问题? 我知道我可以自己写查询,但是我不想在整个代码中保留Active Record。

在rails中,除了validation错误之外,怎样才能找出导致.save()失败的原因?

我有一个ActiveRecord模型,从valid?返回true valid? (而.errors是空的),但是从save()返回false 。 如果模型实例是有效的,我怎样才能找出导致保存失败的原因?

用rails在一个调用中保存多个对象

我有一个方法在轨道上做这样的事情: a = Foo.new("bar") a.save b = Foo.new("baz") b.save … x = Foo.new("123", :parent_id => a.id) x.save … z = Foo.new("zxy", :parent_id => b.id) z.save 问题是这需要越来越多的实体,我添加。 我怀疑这是因为它必须击中每个logging的数据库。 既然他们是嵌套的,我知道在父母得救之前我不能拯救孩子,但是我想立刻拯救所有的父母,然后是所有的孩子。 这将是很好的做一些事情,如: a = Foo.new("bar") b = Foo.new("baz") … saveall(a,b,…) x = Foo.new("123", :parent_id => a.id) … z = Foo.new("zxy", :parent_id => b.id) saveall(x,…,z) 这将只有两个数据库命中。 有没有一种简单的方法来做到这一点在轨道上,还是我坚持做一个一次?

Rails 3 / Form没有模型:我如何创build一个不绑定到模型的表单?

我有一个模型,我有一个视图,显示一个基于该模型创build一个新的对象的forms。 我们称之为Form1 。 一旦用户提交Form1 ,就创build了该对象。 然后,我想在下一页显示Form2的第二个表单,要求用户在将对象保存到数据库之前检查各种选项。 我的问题可能是非常基本的。 我不知道如何创buildForm2 ,因为它不直接绑定到模型上。 因为我是Rails新手,所以我只创build表单如下: form_for(@object) { |f| … } @object是从模型实例化的一个对象 问题 :我不相信这种代码在我的目的下可以工作。 如何创buildForm2 ,因为它不能基于@object或@object的模型? 从我的应用程序的一些细节 : 该网站在redirect到OAuth服务器之前接受值( Form1 )。 当用户在OAuth服务器上validation她的凭据时,她被redirect回我的网站。 然后, XML-RPC请求将检索有关OAuth服务器上用户帐户的信息。 XML响应可能表示用户在OAuth服务器上只有一个帐户。 如果是这样,则从XML中检索一些值并将其添加到对象中,然后(最后)将其保存到数据库中,然后将用户redirect到成功页面。 但是,如果XML响应表明用户在OAuth服务器上有多个帐户,我想要显示一个表单( Form2 ),以允许用户selectOAuth服务器上哪些帐户与我的网站相关联。 所以Form2确实要求用户创build多less个对象,而不是一个对象的特定属性。

在Mongoid安装后使用Active Record生成器?

我通过Mongoid集成使用MongoDB,以及项目中的ActiveRecord。 我想为主动logging生成迁移,并且当我运行时,Mongoid是默认的。 rails g migration 任何想法如何指定AR作为我的默认发生器迁移,模型等? 谢谢!

检查logging是否被摧毁了

所以有 record.new_record? 检查是否有新东西 我需要检查是否有什么东西在出路。 record = some_magic record.destroy record.is_destroyed? # => true 就是这样 我知道摧毁冻结的对象,所以冻结? 有些作品,但有什么明确的任务呢?