3

1 つのページに 2 つの ajax リクエストがあります (1 つは日付を表示し、もう 1 つはカレンダーを表示します)。

リクエスト 1 : (カレンダーで) 日付をクリックすると、日付が更新されます。

リクエスト 2 : カレンダーの月間を変更できます。

index.js.erb に両方の関数があり、常に両方を実行し、月を変更するたびに「request one」の日付をリセットします。

一度に index.js.erb の 1 つの関数のみを実行するようにできますか?

Index.js.erb

$("#calendar").html("<%= escape_javascript(render('layouts/calendar')) %>");
$("#today").html("<%= escape_javascript(render('layouts/today')) %>");

_today.html.erb

<div class="span3 offset2 dateToday">
    <% end %>
    <span id="currentdate">
        <%= @eventDate.strftime("%B") %><br>
        <span id="dayDate"><%= h @eventDate.day %></span>
    </span>
</div>

_calendar.html.erb

  <h2 id="month">
      <span class="pull-left"><%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m-01") %></span>
      <%= h @date.strftime("%B %Y") %>
      <span class="pull-right"><%= link_to ">", :month => (@date.end_of_month+1).strftime("%Y-%m-01") %></span>
  </h2>
  <%= calendar_for(@events, :year => @date.year, :month => @date.month) do |t| %>
      <%= t.head('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun') %>
      <%= t.day(:day_method => :eventdate) do |date, events| %>
  <div class="day">
      <%= link_to(date.day,  {:day => date }, :remote => true, :class => "btn dayBtn") %>      
  </div>
  <% end %>

編集:routes.rb

resources :calendar

root :to => "calendar#index"

match '/faq',   to: 'calendar#faq'
match ':controller/:action'

編集 - ajax アクションへのリンク

<%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m-01"), :action => "update_calendar", :remote => true %>

ありがとう!

4

1 に答える 1