仅显示过去30天内的对象

Tom*_*hen 8 ruby-on-rails ruby-on-rails-3

终于设法让我的应用程序列出特定日期下的工作.我现在正在寻找一种方法来仅显示过去30天内创建的工作.

目前,我显示工作的方法是部分的,看起来像这样:

 <% @jobs.group_by{|x| x.created_at.strftime("%d %b. %Y")}.each do |date,jobs_on_that_date| %>

 <section class="date">
   <%= date %>
 </section>

 <section id="top-job">
   <% jobs_on_that_date.each do |job| %>
    <section id="job-wrapper">
      <%= link_to url_with_protocol(@link.job_url), :target => '_blank' do %>
      <section id="job">
        <%= job.title %> - <%= job.company %>
        <%= job.salary %>
        <%= job.location %> 
        <%= job.job_type %>
    </section>
 </section> 
<% end %>
 <% end %>
 </section>
 <% end %>
Run Code Online (Sandbox Code Playgroud)

有没有办法整合只在视图中显示过去30天的工作量,或者更好地在控制器中定义它?

谢谢!

Mat*_*rke 22

在控制器中做得更好.你在视图中放置的逻辑越少越好.

假设这@jobs是ActiveRecord查询的结果,@jobs = @jobs.where('created_at > ?', 30.days.ago)听起来像您想要的查询.