我有一份任务清单。每个品尝都有一天:日期和名称:字符串。 在索引中,我想仅显示今天的任务。 如果在今天之后有任务,我还想在前几天打上分页,使用“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
答案 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)
我希望这可以解决您的大部分问题,如果没有,请告诉我们您遇到的错误的详细信息。