我在命名时很糟糕,并且意识到我的Rails应用程序中的模型有更好的名称.
有没有办法使用迁移来重命名模型及其相应的表?
是否有一个替代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
你如何删除ActiveRecord对象?
我查看了Active Record Querying,它没有任何删除我可以看到的内容.
删除id,
删除当前对象,如:user.remove,
你能根据where条款删除吗?
我正在尝试生成一个新模型并忘记引用另一个模型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仍让我感到搔痒......
有时,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
只是为了更新这个,因为似乎有很多人来到这里,如果你使用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) 在Rails中,您可以找到使用Model.size和的记录数Model.count.如果您正在处理更复杂的查询,那么使用一种方法优于另一种方法是否有任何优势?他们有什么不同?
例如,我有用户的照片.如果我想显示一个用户表和他们有多少张照片,那么运行的实例user.photos.size会更快还是更慢user.photos.count?
谢谢!
你如何在Rails 3 ActiveRecord中进行OR查询.我找到的所有示例都只有AND查询.
编辑:自Rails 5以来可以使用OR方法.请参阅ActiveRecord :: QueryMethods
请帮助我理解关联:source选项has_one/has_many :through.Rails API解释对我来说没什么意义.
"指定使用的源关联名称
has_many:through => :queries.只有在无法从关联中推断出名称时才使用它.除非给出a,否则has_many :subscribers, :through => :subscriptions将查找:subscribers或:subscriber打开."Subscription:source
我有一个rake任务,除非存在一个表,否则它将无效.我正在一个网站上与20多名工程师一起工作,所以我想确保他们已经迁移了表,然后才能执行一个rake任务,该任务将填充相应的表.
AR有这样的方法Table.exists吗?如何确保他们已成功迁移表?