Мне нужно получить записи mongodb в приложении sinatra с помощью Mongoid. Для этого я пытаюсь сделать заказ записи, извлекаемые с помощью следующего запроса:order_by в Mongoid вдоль find_by, NoMethodError - неопределенный метод `order_by '
@bin = Bin.find_by(bin_id: params[:bin_id]).order_by(:created_at.desc)
Но я получаю NoMethodError,
NoMethodError - undefined method `order_by' for #<Bin:0x00000101d24d60>:
/Users/harshsingh/Documents/Codes/mogreet-requestbin/app.rb:79:in `block in <class:App>'
/Users/harshsingh/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `call'
/Users/harshsingh/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:1603:in `block in compile!'
/Users/harshsingh/.rvm/gems/ruby-2.1.2/gems/sinatra-1.4.5/lib/sinatra/base.rb:966:in `[]'
...
Я не знаю, почему order_by
не работает, Я попытался взглянуть на документы Mongoid, но не нашел ничего полезного для меня.
Edit:
К сожалению, я забыл упомянуть, я вложенный документ в Bin
документе под названием Callback
, с отношениями embeds_many :callbacks
и embedded_in :bin, :inverse_of => :bins
, поэтому я хотел, чтобы отсортировать callbacks
документы в пределах одной конкретной bin
основе на created_at
.
как предложил @basia я решил это, добавив 'order_by (created_at:«убывание»)' в 'для loop' на странице просмотра, что-то вроде '<% для обратного вызова в @ bin.callbacks.order_by (created_at:" desc ")%>'. – harshs08