Tag: activerecord

使用Rails 4,Model.scoped已被弃用,但Model.all不能替代它

启动Rails 4, Model.scoped已经被弃用了。 DEPRECATION WARNING: Model.scoped is deprecated. Please use Model.all instead. 但是, Model.scoped和Model.all有一个区别,即scoped.scoped返回一个范围,而all.all运行查询。 在Rails 3上: > Model.scoped.scoped.is_a?(ActiveRecord::Relation) => true 在Rails 4上: > Model.all.all.is_a?(ActiveRecord::Relation) DEPRECATION WARNING: Relation#all is deprecated. If you want to eager-load a relation, you can call #load (eg `Post.where(published: true).load`). If you want to get an array of records from a relation, […]

我如何使用活动logging的轨道中的两个不同的数据库?

我需要在不同的Rails模型中使用不同的数据库连接。 有没有这样做的方法呢? 任何链接或search关键字将是伟大的:)

如何在Rails的activerecord模型中为属性创build默认值?

我想通过在ActiveRecord中定义它来为属性创build一个默认值。 默认情况下,每次创buildlogging,我想有一个属性:status的默认值。 我试图做到这一点: class Task < ActiveRecord::Base def status=(status) status = 'P' write_attribute(:status, status) end end 但创build后,我仍然从数据库中检索到这个错误: ActiveRecord::StatementInvalid: Mysql::Error: Column 'status' cannot be null 所以我认为这个价值不适用于这个属性。 在Rails中这样做的优雅方式是什么? 非常感谢。

浮动与ActiveRecord十进制

有时,Activerecord数据types会让我困惑。 呃,经常。 我的一个永恒的问题是,对于一个特定的情况, 我应该使用:decimal还是:float ? 我经常遇到这个链接, ActiveRecord :: decimal与:float? ,但答案还不够清楚,我可以肯定: 我已经看到许multithreading,人们build议从不使用浮动,并始终使用十进制。 我也看到一些人build议只使用float来进行科学应用。 以下是一些示例: 地理位置/经度/纬度: 120.5777777 ,… 比率/百分比: 1.4143 ,… 我曾经使用过:decimal ,但是我发现处理Ruby中的BigDecimal对象与浮点数相比是不必要的尴尬。 我也知道我可以使用:integer来表示货币/美分,但是它并不适合其他情况,例如当精度可能随时间变化的数量。 使用每个的优点/缺点是什么? 要知道使用哪种types,有什么好的经验法则?

Rails 3,has_one / has_many和lambda条件

在这里我的模特: class User < ActiveRecord::Base has_many :bookmarks end class Topic < ActiveRecord::Base has_many :bookmarks end class Bookmark < ActiveRecord::Base belongs_to :user belongs_to :topic attr_accessible :position validates_uniqueness_of :user_id, :scope => :topic_id end 我想用current_user获取关联bookmark所有topics 。 ATM,我这样做: Topic.all.each do |t| bookmark = t.bookmarks.where(user_id: current_user.id).last puts bookmark.position if bookmark puts t.name end 这是丑陋的,做太多的数据库查询。 我想这样的东西: class Topic < ActiveRecord::Base has_one […]

join多个具有活动logging的表格

我想知道位于孙子孙女选项卡上的横幅名称。 以下是我的数据库: Inscription (where I need to start from): Item1_id Item1: Item2_id Item2: Banner_id Banners: name 我如何获得有效logging的铭文表的所有横幅名称?

Rails按has_many关联的结果数量sorting

无论如何,我可以通过从儿童模型( Jobs )返回的项目数量来订购结果( ASC / DESC )吗? @featured_companies = Company.joins(:jobs).group(Job.arel_table[:company_id]).order(Job.arel_table[:company_id].count).limit(10) 例如:我需要打印最高职位的公司

在模型中使用助手:我如何包含助手依赖?

我正在写一个模型来处理来自文本区域的用户input。 遵循http://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-input的build议,在保存到数据库之前,我正在清理模型中的input,使用before_validate回电话。 我的模型的相关部分如下所示: include ActionView::Helpers::SanitizeHelper class Post < ActiveRecord::Base { before_validation :clean_input … protected def clean_input self.input = sanitize(self.input, :tags => %w(biu)) end end 不用说,这是行不通的。 当我尝试保存新post时,出现以下错误。 undefined method `white_list_sanitizer' for #<Class:0xdeadbeef> 显然,SanitizeHelper创build了一个HTML :: WhiteListSanitizer的实例,但是当我将它混合到我的模型中时,它找不到HTML :: WhiteListSanitizer。 为什么? 我能做些什么来解决这个问题?

ActiveRecord在date字段中按年,日或月查找

我有一个具有date属性的ActiveRecord模型。 是否有可能利用该date属性按年,日和月查找: Model.find_by_year(2012) Model.find_by_month(12) Model.find_by_day(1) 或者只是可以find_by_date(2012-12-1)。 我希望能避免创build年,月和日属性。

Rails中的多个数据库

可以这样做吗? 在单个应用程序中,用SQLitepipe理许多项目。 我想要的是为我的应用程序正在pipe理的每个项目都有一个不同的数据库..所以多个相同结构的数据库的副本,但其中有不同的数据。 我将select基于URI上的参数使用哪个副本。 这是为安全完成的..我是这种编程newbe,我不希望它发生,因为某种原因,而在一个项目上工作,另一个被损坏.. 2.容易备份和归档旧项目