首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4-排序范围

Rails 4-排序范围
EN

Stack Overflow用户
提问于 2016-01-09 07:02:37
回答 2查看 1.1K关注 0票数 0

我试图在Rails 4中制作一个应用程序。

我的资历模型有两个范围:

代码语言:javascript
复制
scope :completed, ->{ where(pending: !true) }
scope :pending, -> { where(pending: true) }

在我看来,我正在尝试把它们(最新的)列出来。

我有一个视图文件:

代码语言:javascript
复制
<% Qualification.pending.sort_by.year_earned.asc.each do |qualification| %>
  <div class="row">
    <div class="col-md-12">
      <div class="profilequalifications">
        <%= qualification.current_study  %>
      </div>    
    </div>  
  </div>
<% end %>

<% Qualification.completed.sort_by(&:year_earned).each do |qualification| %>
  <div class="row">
    <div class="col-md-12">
      <div class="profilequalifications">
        <%= qualification.completed_award  %>
      </div>    
    </div>  
  </div>
<% end %>   

第二个指数起作用--但顺序不对。

第一个索引-我尝试了一百万个变体的表达式,但找不到一个没有抛出一个错误。

我尝试了上述每一种方法,并做了以下的尝试(以下是我在这个网站上找到的例子):

代码语言:javascript
复制
<% Qualification.pending.sort_by(&:year_earned).reverse_order.each do |qualification| %>

<% Qualification.pending.sort_by(&:year_earned.reverse).each do |qualification| %>

<% Qualification.pending.sort_by('&:year_earned ASC').each do |qualification| %>


<% Qualification.pending.sort_by('year_earned ASC').each do |qualification| %>

而不是把它们全部列出来--有人知道如何按升序排列吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-09 07:22:45

我想你想要Qualification.pending.order(year_earned: :asc).each do |qualification|

有关更多信息,请参见此:http://apidock.com/rails/ActiveRecord/QueryMethods/order

票数 0
EN

Stack Overflow用户

发布于 2016-01-09 07:24:30

我会把命令包括在你的范围内。

代码语言:javascript
复制
scope :completed, ->{ where(pending: !true).order('year_earned DESC') }
scope :pending, -> { where(pending: true).order('year_earned DESC')}

在您看来,只需删除.sort_by,然后它就能工作了。

代码语言:javascript
复制
<% Qualification.pending.each do |qualification| %>
 <div class="row">
  <div class="col-md-12">
    <div class="profilequalifications">
     <%= qualification.current_study  %>
    </div>    
   </div>  
  </div>
<% end %>

<% Qualification.completed.each do |qualification| %>
 <div class="row">
  <div class="col-md-12">
   <div class="profilequalifications">
    <%= qualification.completed_award  %>
   </div>    
  </div>  
 </div>
<% end %>   
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34690706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档