Передавать данные из Rails в javascript в моем случае

Мой контроллер:

class SchoolController < ApplicationController

 def index
 ...
 end

 def edit
 @school=School.find_by_id params[:id]

 end

 def check_teachers
 @teachers = @school.teachers

 #How to show teachers' names and titles in a lightbox by javascript ?

 end

end

Как вы видите выше, у меня есть метод check_teachers, внутри которого я получил список объектов учителей. Каждый объект Teacher имеет атрибуты name и title.

Щелчок кнопкой мыши на представлении вызовет check_teachers метода check_teachers:

Я хотел бы показать всем учителям name и title в лайтбокс. Я думаю, мне понадобится javascript для реализации этого. Но я не знаю, как я могу передать все данные учителей из Rails в javascript и показать данные в js-реализованном лайтбоксе...

Кто-нибудь может помочь в этом?

1 ответ

вы можете сделать это с помощью ajax. Самый простой способ - использовать FancyBox (плагин jquery, http://fancybox.net/home)

код вашей кнопки должен выглядеть так:

<a id="ajax_button" href="<%= url_for :controller => :school, :action =>:check_teachers, :id=>@school.id %>" target="_blank">Check teachers</a>

затем добавьте этот javascript

$(document).bind('load', function() { $("#various3").fancybox({ajax:{type: "GET" } })

и действие вашего контроллера контроллера должно выглядеть так:

def check_teachers @school = School.find(params[:id]) @teachers = @school.teachers end

но лучше перемещать @school = School.find(params[:id]) до before_filter

licensed under cc by-sa 3.0 with attribution.