find(:first)和find(:all)已弃用

San*_*tel 7 ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我正在使用RubyMine,rails 3.2.12我在IDE中得到了不推荐使用的警告.任何想法如何解决这个已弃用的警告?

find(:first) and find(:all) are deprecated in favour of first and all methods. Support will be removed from rails 3.2.
Run Code Online (Sandbox Code Playgroud)

AMI*_*ING 13

在@keithepley评论后我改变了我的回答

#Post.find(:all, :conditions => { :approved => true })
Post.where(:approved => true).all

#Post.find(:first, :conditions => { :approved => true })
Post.where(:approved => true).first
or
post = Post.first  or post = Post.first!
or
post = Post.last   or post = Post.last!
Run Code Online (Sandbox Code Playgroud)

您可以从这些位置阅读更多内容

弃用声明

Post.find(:all, :conditions => { :approved => true })
Run Code Online (Sandbox Code Playgroud)

更好的版本

Post.all(:conditions => { :approved => true })
Run Code Online (Sandbox Code Playgroud)

最佳版本(1)

named_scope :approved, :conditions => { :approved => true }
Post.approved.all
Run Code Online (Sandbox Code Playgroud)

最佳版本(2)

Post.scoped(:conditions => { :approved => true }).all
Run Code Online (Sandbox Code Playgroud)

  • 关于Rails 3的问题,但这都是过时的Rails 2语法.named_scope,scoped以及所有哈希都是旧的. (3认同)