Closed. This question needs details or clarity。它当前不接受答案。












想要改善这个问题吗?添加详细信息,并通过editing this post来解决问题。

7年前关闭。



Improve this question




如果您访问http://ccvideofinder.heroku.com/,那么这就是我所指的一个很好的例子。

如何在Rails中完成?我当时在想也许使用case/when语句,但是在与IRB纠缠了一段时间之后,我无法弄清楚。

在模型中:
class Movies < ActiveRecord::Base
  validates_presence_of :title

  def self.find_by_first_letter(letter)
    find(:all, :conditions => ['title LIKE ?', "#{letter}%"], :order => 'title ASC')
  end

end

在 Controller 中:
@result = Movie.find_by_first_letter(params[:letter])

最佳答案

# Simple Ordering
@videos = Movie.order('title ASC')

# Implement the ordering outside of definition
@videos = Movie.find_by_first_letter('a').order('title ASC')

# Implement the order into your definition (as in example below)
@videos = Movie.find_by_first_letter('a')

可以找到ActiveRecord查询的文档:
http://guides.rubyonrails.org/active_record_querying.html#ordering

如果希望将订单实现到find_by_first_letter定义中,则可以简单地将.order()函数链接如下:
class Movie < ActiveRecord::Base
  validates_presence_of :title

  def self.find_by_first_letter(letter)
    where('title LIKE ?', "#{letter}%").order('title ASC')
  end
end

关于ruby-on-rails - 如何在Rails中按字母顺序对电影进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19780148/

10-08 23:19