我试图在Rails 4中制作一个应用程序。
我的资历模型有两个范围:
scope :completed, ->{ where(pending: !true) }
scope :pending, -> { where(pending: true) }在我看来,我正在尝试把它们(最新的)列出来。
我有一个视图文件:
<% 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 %> 第二个指数起作用--但顺序不对。
第一个索引-我尝试了一百万个变体的表达式,但找不到一个没有抛出一个错误。
我尝试了上述每一种方法,并做了以下的尝试(以下是我在这个网站上找到的例子):
<% 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| %>而不是把它们全部列出来--有人知道如何按升序排列吗?
发布于 2016-01-09 07:22:45
我想你想要Qualification.pending.order(year_earned: :asc).each do |qualification|
有关更多信息,请参见此:http://apidock.com/rails/ActiveRecord/QueryMethods/order
发布于 2016-01-09 07:24:30
我会把命令包括在你的范围内。
scope :completed, ->{ where(pending: !true).order('year_earned DESC') }
scope :pending, -> { where(pending: true).order('year_earned DESC')}在您看来,只需删除.sort_by,然后它就能工作了。
<% 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 %> https://stackoverflow.com/questions/34690706
复制相似问题