Я новичок в Ruby on Rails и работаю с несколькими примерами приложений из книги O'Reilly Head First Rails.В одном из примеров есть страница, состоящая из трех частей.Средняя часть - это список предметов.Прямо под этим разделом есть ссылка, которая при щелчке должна обновить элемент div, содержащий эту часть.В книге приводятся примеры, основанные на Rails 2.3. Я верю и использую Rails 3.1.Вот пример, который дает мне книга:
rout.rb:
map.connect '/flights/:flight_id/seats', :action=>'flight_seats', :controller=>'seats'
seat_controller.rb:
def flight_seats
@flight = Flight.find(params[:flight_id])
render :partial => "flights/seat_list", :locals => {:seats => @flight.seats}
end
show.html.erb:
<div id="seats">
<%= render :partial=>"seat_list". :locals=>{:seats=>@flight.seats} %>
</div>
<$= link_to_remote("Refresh Seats", :url=>"/flights/#{@flight.id}/seats", method=>"get", :update=>"seats") %>
В этом примере также используется prototype.js, поскольку именно в него был встроен Rails 2.3. В Rails 3 jQuery используется в качестве библиотеки JavaScript по умолчанию.(не уверен, что это имеет большое значение)
Вот что у меня есть.Это правильно получает содержимое части, просто не обновляет div "seat" после того, как вызов AJAX получает часть.Мой код:
rout.rb:
match 'flights/:flight_id/seats' => 'seats#flights_seats'
seat_controller.rb:
def flights_seats
@flight = Flight.find(params[:flight_id])
render :partial => "flights/seat_list", :locals => { :seats => @flight.seats }
end
show.html.erb:
<div id="seats">
<%= render :partial => 'seat_list', :locals => { :seats => @flight.seats } %>
</div>
<%= link_to "Refresh Seats", "/flights/#{@flight.id}/seats", :remote => true %>
Любая идея, почему мой <div id="seats">
не обновится с обновленным частичным?Держу пари, что есть, но я все равно спрошу, что-то не так с моим кодом?