ben*_*ben 1 activerecord ruby-on-rails ruby-on-rails-3
我正在尝试使用新的Rails 3 Active Record Query Interface.
我的旧式查询是
my_notes = Note.find(:all, :conditions => { :user_id => current_user.id, :date => p[:date] }, :order => "date ASC, created_at ASC")
Run Code Online (Sandbox Code Playgroud)
在新风格中,我认为它将是:
my_notes = Note.find_all_by_user_id_and_date(current_user.id, p[:date]).order('date ASC, created_at ASC')
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
NoMethodError in NotesController#play
undefined method `order' for #<Array:0x00000103d23c38>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢阅读.
find_all_by_<attritubte>不是新ARel语法的一部分.它立即执行查询并返回带有结果的数组.由于查询已经执行,因此您无法再添加任何选项order.
试试这个:
Note.find.where(:user_id => current_user.id, :date => p[:date]).order('date ASC, created_at ASC')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
913 次 |
| 最近记录: |