Tag: rails activerecord

计数执行的查询数量

我想testing一段代码执行尽可能less的SQL查询。 ActiveRecord::TestCase似乎有自己的assert_queries方法,这将做到这一点。 但是由于我没有修补ActiveRecord,所以对我来说没有什么用处。 RSpec或ActiveRecord是否提供了任何官方公开的方法来计算在一个代码块中执行的SQL查询的数量?

在Ruby ActiveRecord模型中级联删除?

我正在关注rubyonrails.org上的截屏(创build博客)。 我有以下型号: comment.rb class Comment < ActiveRecord::Base belongs_to :post validates_presence_of :body # I added this end post.rb class Post < ActiveRecord::Base validates_presence_of :body, :title has_many :comments end 模型之间的关系正常工作,除了一件事情 – 当我删除一个postlogging,我希望RoR删除所有相关的评论logging。 我知道ActiveRecords是独立于数据库的,所以没有内build的方法来创build外键,关系,ON DELETE,ON UPDATE语句。 那么,有没有办法做到这一点(也许RoR本身可以照顾删除相关的评论?)?

如何validationActiveRecord中的电子邮件字段的格式?

我有一个Rails应用程序中有一个电子邮件字段的用户模型。 是否有一个默认的validation,将确保电子邮件是在正确的格式? 如果不是,我将如何去validation该领域?

活动模型,活动logging和活动资源之间的区别

有没有人可以通过定义Active Model,Active Record和Active Resource之间的确切区别来帮助我。 我已经做了足够的search,以find确切的区别,但没有得到任何具体的东西,可以告诉他们之间的确切区别。 现在他们都和我一样。 所以请给我一些具体的答案。

左侧外部joinRails 4

我有3个模型: class Student < ActiveRecord::Base has_many :student_enrollments, dependent: :destroy has_many :courses, through: :student_enrollments end class Course < ActiveRecord::Base has_many :student_enrollments, dependent: :destroy has_many :students, through: :student_enrollments end class StudentEnrollment < ActiveRecord::Base belongs_to :student belongs_to :course end 我希望查询课程表中不存在的与某个学生关联的StudentEnrollments表中的课程列表。 我发现也许左连接是要走的路,但似乎rails中的joins()只接受一个表作为参数。 我认为会执行我想要的SQL查询是: SELECT * FROM Courses c LEFT JOIN StudentEnrollment se ON c.id = se.course_id WHERE se.id IS […]

Heroku Postgres错误:PGError:错误:关系“组织”不存在(ActiveRecord :: StatementInvalid)

我在将Heroku应用程序部署到Heroku时出现问题,在尝试访问应用程序时出现此错误: PGError:错误:关系“组织”不存在(ActiveRecord :: StatementInvalid) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"organizations"'::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum 任何人有任何想法? 这对我来说是第一次,尤其是因为我已经在Heroku上工作了一年,还没有看到类似的东西。 当然,一切工作在本地的SQLite。 提前感谢任何帮助! – 标记

rename_column是否照顾索引?

说,我们有这样的东西: add_column :users, :single, :boolean add_index :users, :single 然后我们再做 rename_column :users, :single, :married ActiveRecord和/或数据库是否也会处理索引的重命名,还是我必须手动删除索引并重新添加索引?

Rails has_one:通过关联

Rails has_one :through关联,通过第二个模型帮助build立与第三个模型的一对一关联。 除了build立一个捷径关联之外,真正的用处是什么呢,否则这将是一个额外的步骤。 从Rails 指南中得到这个例子: class Supplier < ActiveRecord::Base has_one :account has_one :account_history, :through => :account end class Account < ActiveRecord::Base belongs_to :supplier has_one :account_history end class AccountHistory < ActiveRecord::Base belongs_to :account end 可能会让我们做一些事情: supplier.account_history 否则会达到: supplier.account.history 如果仅仅是为了更简单的访问,那么从技术上讲,可能存在一个一对一的关联,其将模型与通过n-1模型的第n个模型连接以便于访问。 除了快捷方式以外,还有其他什么吗?

如何覆盖ActiveRecord模型中的getter方法?

我正在尝试覆盖ActiveRecord模型的getter方法。 我在模型Category有一个名为name的属性,我希望能够做到这样的事情: def name name_trans || name end 如果name_trans属性不为零,则返回它,否则返回name属性。 我将如何做到这一点? 这应该这样正常地调用: @category.name

找vs vs find_by vs其中

我是新来的铁轨。 我看到有很多方法可以findlogging: find_by_<columnname>(<columnvalue>) find(:first, :conditions => { <columnname> => <columnvalue> } where(<columnname> => <columnvalue>).first 而且它们看起来像是最终生成完全相同的SQL。 另外,我相信查找多个logging也是一样的: find_all_by_<columnname>(<columnvalue>) find(:all, :conditions => { <columnname> => <columnvalue> } where(<columnname> => <columnvalue>) 有一个经验法则或推荐使用哪一个?