小编use*_*149的帖子

如何编写迁移以在Rails中重命名ActiveRecord模型及其表?

我在命名时很糟糕,并且意识到我的Rails应用程序中的模型有更好的名称.
有没有办法使用迁移来重命名模型及其相应的表?

migration ruby-on-rails rails-activerecord

399
推荐指数
4
解决办法
13万
查看次数

Rails update_attributes没有保存?

是否有一个替代update_attributes不保存记录?

所以我可以这样做:

@car = Car.new(:make => 'GMC')
#other processing
@car.update_attributes(:model => 'Sierra', :year => "2012", :looks => "Super Sexy, wanna make love to it")
#other processing
@car.save
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我知道我可以@car.model = 'Sierra',但我想在一条线上更新它们.

ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 rails-activerecord

370
推荐指数
4
解决办法
13万
查看次数

你如何删除ActiveRecord对象?

你如何删除ActiveRecord对象?

我查看了Active Record Querying,它没有任何删除我可以看到的内容.

  1. 删除id,

  2. 删除当前对象,如:user.remove,

  3. 你能根据where条款删除吗?

ruby-on-rails rails-activerecord

309
推荐指数
3
解决办法
28万
查看次数

Ruby on Rails生成模型字段:type - 字段的选项有哪些:type?

我正在尝试生成一个新模型并忘记引用另一个模型ID的语法.我自己查一下,但在我所有的Ruby on Rails文档链接中,我还没有弄清楚如何找到权威的来源.

$ rails g model Item name:string description:text(在这里reference:product或者references:product).但更好的问题是,未来我可以在哪里如何轻松地寻找这种愚蠢?

注意:我已经学到了很难的方法,如果我错误地输入其中一个选项并运行我的迁移,那么Ruby on Rails将完全搞砸我的数据库...并且rake db:rollback对这种搞砸是无能为力的.我确定我只是不理解某些东西,但在我做之前......返回的"详细"信息rails g model仍让我感到搔痒......

ruby-on-rails generator rails-activerecord

306
推荐指数
3
解决办法
19万
查看次数

ActiveRecord中的Float vs Decimal

有时,Activerecord数据类型让我感到困惑.呃,经常.对于特定情况,我的一个永恒问题是:

我应该使用:decimal:float

我经常遇到这个链接,ActiveRecord :: decimal vs:float?,但答案不够清楚,我无法确定:

我见过许多线程,人们建议不要使用浮点数并始终使用小数.我也看到一些人建议只使用浮动用于科学应用.

以下是一些示例案例:

  • 地理位置/纬度/经度:-45.756688,120.5777777,...
  • 比/百分比:0.9,1.25,1.333,1.4143,...

:decimal过去曾经使用过,但是我发现与BigDecimal浮点数相比,处理Ruby中的对象是不必要的尴尬.例如,我也知道我可以:integer用来代表金钱/美分,但它并不适合其他情况,例如精确度随时间变化的数量.

  • 使用每个的优点/缺点是什么?
  • 知道使用哪种类型会有什么好的经验法则?

floating-point types ruby-on-rails decimal rails-activerecord

274
推荐指数
3
解决办法
12万
查看次数

如何用ActiveRecord/Rails表达NOT IN查询?

只是为了更新这个,因为似乎有很多人来到这里,如果你使用Rails 4,请查看TrungLê`和VinniVidiVicci的答案.

Topic.where.not(forum_id:@forums.map(&:id))

Topic.where(published:true).where.not(forum_id:@forums.map(&:id))
Run Code Online (Sandbox Code Playgroud)

我希望有一个简单的解决方案不涉及find_by_sql,如果不是,那么我想这将必须工作.

我发现这篇文章引用了这个:

Topic.find(:all, :conditions => { :forum_id => @forums.map(&:id) })
Run Code Online (Sandbox Code Playgroud)

这是一样的

SELECT * FROM topics WHERE forum_id IN (<@forum ids>)
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法NOT IN解决这个问题,例如:

SELECT * FROM topics WHERE forum_id NOT IN (<@forum ids>)
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-activerecord

198
推荐指数
6
解决办法
13万
查看次数

ActiveRecord:大小与计数

在Rails中,您可以找到使用Model.size和的记录数Model.count.如果您正在处理更复杂的查询,那么使用一种方法优于另一种方法是否有任何优势?他们有什么不同?

例如,我有用户的照片.如果我想显示一个用户表和他们有多少张照片,那么运行的实例user.photos.size会更快还是更慢user.photos.count

谢谢!

ruby ruby-on-rails ruby-on-rails-3 rails-activerecord

190
推荐指数
4
解决办法
10万
查看次数

ActiveRecord OR查询

你如何在Rails 3 ActiveRecord中进行OR查询.我找到的所有示例都只有AND查询.

编辑:自Rails 5以来可以使用OR方法.请参阅ActiveRecord :: QueryMethods

ruby-on-rails ruby-on-rails-3 rails-activerecord

178
推荐指数
9
解决办法
13万
查看次数

理解:通过Rails的has_one/has_many的源选项

请帮助我理解关联:source选项has_one/has_many :through.Rails API解释对我来说没什么意义.

"指定使用的源关联名称has_many :through => :queries.只有在无法从关联中推断出名称时才使用它.除非给出a,否则has_many :subscribers, :through => :subscriptions将查找:subscribers:subscriber打开."Subscription:source

ruby-on-rails-3 rails-activerecord

178
推荐指数
3
解决办法
6万
查看次数

检查Rails中是否存在表

我有一个rake任务,除非存在一个表,否则它将无效.我正在一个网站上与20多名工程师一起工作,所以我想确保他们已经迁移了表,然后才能执行一个rake任务,该任务将填充相应的表.

AR有这样的方法Table.exists吗?如何确保他们已成功迁移表?

ruby ruby-on-rails rails-migrations rails-activerecord

168
推荐指数
4
解决办法
5万
查看次数