按天分页



我有一个任务列表。每个品酒都有一个日期:日期和一个名称:字符串。在索引中,我只想显示今天一天的任务。我还想对前几天进行分页,如果今天之后有任务,则使用"上一个"链接和一个"下一个"链接。

我的脑子很简单,但是,我不知道该怎么做。我是铁轨上的红宝石新手,我遇到了如此艰难的时光。

谢谢。

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

指数

<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

你在这个脚本中有一些小错误:

<%= 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)

我希望这可以解决您的大部分问题,如果没有,请向我们提供有关您遇到的错误的更多详细信息。

最新更新