我们将有一个局部渲染一组给定事件(任何类型)让我们称之为_events.html.erb
_events.html.erb:
<% events.each do |event| %>
<li>
<span class="eventname"><%= event.name %></span>
<span class="eventlocation"><%= event.location %></span>
</li>
<% end %>
然后我们将创建一个名为fetch_events
返回 js 响应的操作。
Class EventsController < ApplicationController
def fetch_events
@events = Event.where(type: params[:type])
respond_to do |format|
format.js
end
end
end
当然在 routes.rb
match 'fetch_events/:type' => 'events#fetch_events', as: :fetch_events
现在我们构建出来fetch_events.js.erb
,这个文件将把 id 为“events”的 div 的内容设置为渲染的部分。
fetch_events.js.erb:
$('#events').html(<%= escape_javascript(render :events, events: @events) %>)
现在在您的页面视图中添加一个具有 id 'events' 的具有 div 将包含响应,而 ajax 可以使用调用link_to
<%= link_to 'today', fetch_events_path(type: :today), :remote => true %>
<%= link_to 'tomorrow', fetch_events_path(type: :tomorrow), :remote => true %>