草庐IT

castle-activerecord

全部标签

ruby - database.yml 在 Rails 4 的 ActiveRecord 中加载到哪里?

Rails应用程序的config/database.yml加载了ActiveRecord代码库中的哪一行(或方法)?(我正在专门查看4.0.5,但如果有人有关于>=4.0.5的任何信息,那将很有启发性)? 最佳答案 它在Railties中,特别是在文件railties/lib/rails/application/configuration.rb的第101-116行(对于Rails4.0.5):https://github.com/rails/rails/blob/v4.0.5/railties/lib/rails/applicati

ruby-on-rails - 有没有办法使用 HashWithIndifferentAccess 序列化 ActiveRecord 的 JSON 属性?

我在Rails应用程序中使用ActiveRecord::ConnectionAdapters::PostgreSQLAdapter。假设我有一个架构:create_table"foo",id::bigserial,force::cascadedo|t|t.string"name"t.jsonb"data",null:falseend现在假设我运行以下代码:classFoo'foobar',:data=>{:a=>'hello'})my_foo=Foo.where(:name=>'foobar').first!putsmy_foo.data[:a]putsmy_foo.data['a']

ruby-on-rails - Activerecord 迁移,使 t.references 正确指向自定义 ID 类型,字符串而不是整数?

下面我有一个“测试”模型的迁移,它使用它自己的主键,一个字符串而不是一个整数。classCreateTest现在我们有了t.references测试的“客户端”模型。classCreateClients问题是t.references假定它是一个整数id。#==SchemaInformation##Tablename:clients##id:integernotnull,primarykey#test_id:integernotnull#created_at:datetimenotnull#updated_at:datetimenotnull这显然是错误的,因为Test.id是一个字符串

ruby-on-rails - 使用给定对象在数据库中查找下一个 ActiveRecord 模型对象

我有一个ActiveRecord模型对象@gallery,它代表GalleriesMYSQL表中的一行。有没有办法让我请求@gallery给我表中下一个画廊对象的ID?对我来说,最明显的方法是:@galleries=Gallery.find(:all)index=@galleries.index(@gallery)@nextgallery=@galleries[index+1]但是我必须对此进行nilsafe,并且我不必要地进行另一个数据库调用来获取所有记录。还有其他出路吗? 最佳答案 我遇到过类似的情况,最终我得到了几个使用Rai

ruby-on-rails - Ruby on Rails - ActiveRecord::Relation 计数方法错误?

我正在编写一个应用程序,允许用户互相发送有关“优惠”的消息。我想我可以节省一些工作并使用Mailboxergem。我正在遵循RSpec的测试驱动开发方法。我正在编写一个测试,以确保每个报价只允许一个Conversation。报价属于两个不同的用户(提供报价的用户和收到报价的用户)。这是我失败的测试:describe"afteramessageissenttothesameusertwice"dobeforedo2.times{sending_user.message_user_regarding_offer!offer,receiving_user,random_string}ends

ruby-on-rails - “拆分”ActiveRecord 集合

假设我有两个模型Post和Category:classPost有没有一种方法可以让我做类似的事情posts=Post.find(:all)p=Array.newp[1]=posts.with_category_id(1)p[2]=posts.with_category_id(2)p[3]=posts.with_category_id(3)...orp=posts.split_by_category_ids(1,2,3)=>[posts_with_category_id_1,posts_with_category_id_2,posts_with_category_id_3]换句话说,将所

ruby-on-rails - 比较两个返回 bool 变量的 ActiveRecords 的每个值

我正在使用RubyonRails3,我有两个Account类的ActiveRecord对象,如下所示:#Account1和#Account2如何在几行代码中比较Account1的每个属性和Account2的相应属性来测试值是否相等?如果Account1的所有值都等于Account2的值,我应该收到“true”输出,否则即使只有一个不同,我也应该收到“false”输出。 最佳答案 account1.attributes==account2.attributes好吧,这很短。请注意,id包含在这些属性中。您可以在两者上都使用.clone

ruby-on-rails - ActiveRecord,哪个先来?

确实是一个简单的问题,按照保存新项目时首先发生的处理顺序。:before_create:验证 最佳答案 validates首先进行。来自docs:(-)save(-)valid(1)before_validation(-)validate(2)after_validation(3)before_save(4)before_create(-)create(5)after_create(6)after_save(7)after_commit 关于ruby-on-rails-ActiveRec

ruby-on-rails - 如何分组处理大型 ActiveRecord 结果集

我想知道是否有办法获取一组ActiveRecord结果(或任何数组,就此而言)并以25个左右为一组进行处理。像这样:User.all.each(25)do|group|#Somecodethatworkswiththisgroupof25end我只是想避免执行多个连续的数据库查询。谢谢! 最佳答案 Rails2.3有这个特性。您可以指定batch_size参数。User.find_in_batches(:batch_size=>25)do|group|#Somecodethatworkswiththisgroupof25end你可以

ruby - ActiveRecord::ConnectionNotEstablished 错误(急切加载?)

我在OSX上开发并在Linux上部署。我的环境是:发展:OSXLionRuby1.9.2p180ActiveRecord3.0.9PostgreSQL9.0测试:UbuntuServer11.04Ruby1.9.2p290ActiveRecord3.1.1PostgreSQL9.1以下代码片段适用于OSX但不适用于Linux:ei_doc_type=TaxDoc::Model::DocType.find_by_doc_type("EI")doc_version=ei_doc_type.doc_versions.find_by_doc_version(edoc.version)custo