我有一个任务列表。每个品酒都有一个日期:日期和一个名称:字符串。在索引中,我只想显示今天一天的任务。我还想对前几天进行分页,如果今天之后有任务,则使用"上一个"链接和一个"下一个"链接。
我的脑子很简单,但是,我不知道该怎么做。我是铁轨上的红宝石新手,我遇到了如此艰难的时光。
谢谢。
这是我现在所拥有的。但它不起作用。
指数
<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)
我希望这可以解决您的大部分问题,如果没有,请向我们提供有关您遇到的错误的更多详细信息。