在我的情况下将数据从Rails传递给javascript

时间:2011-12-12 16:06:54

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我的控制器:

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对象都有nametitle个属性。

按钮点击视图会触发调用check_teachers方法:

我想在灯箱中显示所有教师nametitle。我想我需要 javascript 来实现这一点。但我不知道如何将所有教师的数据从 Rails 传递到 javascript 并在js实现的灯箱中显示数据......

任何人都可以提供任何帮助吗?

1 个答案:

答案 0 :(得分:1)

你可以用ajax做到这一点。最简单的方法是使用FancyBox(jquery插件,http://fancybox.net/home

你的按钮代码应该是

<a id="ajax_button" href="<%= url_for :controller => :school, :action =>:check_teachers, :id=>@school.id %>">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