1

我有一个任务清单。每个口味都有一个 day:date 和一个 name:string。在索引中,我只想显示今天的任务。如果今天之后有任务,我还想对前几天进行分页,使用“上一个”链接和一个“下一个”链接。

在我的脑海里很简单,但是,我不知道该怎么做。我是 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) %>

任务控制器

  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
4

1 回答 1

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)

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

于 2012-12-05T22:53:24.847 回答