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を使用していますparams[:date]

@tasks = Task.where( Date.today )

これは、日付でタスクを検索するための正しい構文ではありません。@date上記を使用していませんが、今日の日付を次のように置き換えてください。Task.where(day: @date)

これで問題のほとんどが解決されることを願っています。そうでない場合は、発生したエラーの詳細をお知らせください。

于 2012-12-05T22:53:24.847 に答える