0

table_builderを使用してRailsアプリにカレンダーを追加しようとしています。私は彼らのreadmeとこの強く推奨されるチュートリアルに基づいて実装を行いました。

初期ロードでは、カレンダーは美しく機能します。各割り当ては正しい日に表示されます。ただし、月の名前を囲む「>」または「<」をクリックして月を変更した場合、ヘッダーの月の名前を変更しても、カレンダー自体は変更されません。カレンダーをレンダリングする私のビューからのコードのブロックは次のとおりです。

  <div id="calendar">  
  <h2 id="month">  
    <%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m-01") %>  
    <%= h @date.strftime("%B %Y") %>  
    <%= link_to ">", :month => (@date.end_of_month+1).strftime("%Y-%m-01") %>  
  </h2>   
    <%= calendar_for(@assignments) do |calendar| %>
        <%= calendar.head('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday') %>
        <% calendar.day(:day_method => :due_date) do |day, assignments| %>
            <%= day.day %>
            <ul>
                <% for assignment in assignments %>
                    <li>
                        <%= assignment.course.name %>: <%= link_to assignment.name, assignment_type_assignment_path(assignment.assignment_type, assignment)%>
                    </li>
                <% end %>
            </ul>
        <% end %>
    <% end %>
</div>  

@assignmentsは、特定のユーザーに関連付けられているすべての割り当ての完全なリストを返します。属性due_dateとしての各割り当て。これは、割り当てをカレンダーに表示する日付です。

コントローラコードは次のとおりです。

class HomeController < ApplicationController
    def index
        @user = @current_user
        @assignments = @user.assignments
        @date = params[:month] ? Date.parse(params[:month]) : Date.today
    end
end

ありがとう

4

1 に答える 1

1

@datecurrentをヘルパーに渡していないcalendar_forため、現在の (またはデフォルトの) 月をレンダリングするようにデフォルト設定されています。@date次のように渡す必要があります。

calendar_for(@assignments, :year => @date.year, :month => @date.month) do |calendar|
于 2012-10-18T18:20:45.430 に答える