我正在使用Ruby 1.8.2和Rails 2.3.11。
<% @answered_respondents = Inquiry.find(:all, :conditions => ["question_id = (?) AND is_answered = 1 AND is_denied = 0", q.id]) %>
<% @answered_respondents.each_with_index do |r, i| %>
<% @nene = Respondent.find(:all, :conditions => ["id = (?)", r.respondent_id ]) %>
<% @nene.each do |zz| %>
<span class="statis_answered_resp"><%= zz.email %></span>
<% end %>
<% end %>
我想做什么:我想通过电子邮件排序我的用户(zz.email)。我怎么能这样做?
答案 0 :(得分:2)
在模型中创建默认范围
Rails2: default_scope :order => 'email ASC'
Rails3: default_scope order('email ASC')
默认值就是所有视图的默认值。
对于其他排序,您还可以创建其他范围,例如
Rails2: named_scope :special :order => 'email ASC'
Rails3: scope :special order('email ASC')
要使用therm,只需说ModelName.all.special即可 将ruby升级到1.8.7也是一个好主意。
1.9.2也运作良好,也会很棒 虽然不依赖,但它通常与Rails3一起使用