2012-12-05 42 views
1

我有一個任務列表。每個tast都有一個日期和一個名稱:字符串。 在索引中,我只想顯示當天的任務。 我還想在前幾天分頁,如果今天之後有任務,請使用「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

你有一些小錯誤,在該腳本:

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

在這裏,您傳遞的日期PARAMS的路線。

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

在這裏,你正在使用的不是params[:date]

@tasks = Task.where(Date.today) 

這是不正確的語法來查找日期任務day PARAMS和你沒有使用@date之上,但今天的日期,更換它由Task.where(day: @date)

我希望這將解決你的大部分問題,如果不是,請給我們更多關於你遇到的錯誤的細節。

+0

非常感謝。這工作得很好。 :) – Allan

+0

@Allan,如果這個答案對你有幫助,請[接受它](http://meta.stackexchange.com/a/5235/152479)。 – Mischa

+0

這是另一個問題,當我更新時,它會回到今天的任務,我希望它可以回到我編輯的那一天。 這是代碼= def update/format.html {redirect_to tasks_path,注意:'任務已成功更新。' } 如何將「tasks_path」更改爲「tasks_day_path」之類的內容? 再次感謝 – Allan