Paginate白天

时间:2012-12-05 22:38:36

标签: ruby-on-rails paginate days

我有一份任务清单。每个品尝都有一天:日期和名称:字符串。 在索引中,我想仅显示今天的任务。 如果在今天之后有任务,我还想在前几天打上分页,使用“prev”链接和“next”链接。

在我脑海里很简单,但是,我无法想象如何去做。 我是ruby-on-rails上的新手,我现在很难过。

感谢。

这就是我现在所拥有的。但它不起作用。

索引

<h1>Listing tasks</h1>
<% @tasks.each do |task| %>
    <%= task.name %>
   <%= task.day %>


<% end %>


<br />

<%= link_to 'New Task', new_task_path %>
<%= link_to 'Previous', tasks_url(:date => @date.prev_day) %>
<%= if @date.past? = link_to 'Next day', tasks_url(:date => @date.next_day) %>

tasks_controller

  def index

    @date = Date.parse(params[:day]) rescue Date.today
    @tasks = Task.where( Date.today )
    @total_tasks   = Task.count
    @current_tasks = @tasks.size
    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @tasks }
    end
  end

1 个答案:

答案 0 :(得分:0)

此脚本中有一些小错误:

<%= link_to 'Previous', tasks_url(:date => @date.prev_day) %>
<%= if @date.past? = link_to 'Next day', tasks_url(:date => @date.next_day) %>

在这里,您将日期参数传递给路线。

@date = Date.parse(params[:day]) rescue Date.today

您使用day参数代替params[:date]

@tasks = Task.where( Date.today )

这不是按日期查找任务的正确语法,您没有使用上面的@date,而是使用今天的日期,将其替换为Task.where(day: @date)

我希望这可以解决您的大部分问题,如果没有,请告诉我们您遇到的错误的详细信息。