2011-12-12 152 views
1

我的控制器:將數據傳遞給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對象具有nametitle屬性。

一個按鈕點擊視圖將觸發check_teachers方法被調用:

我想顯示所有教師nametitle在燈箱廣告。我想我需要javascript來實現這一點。但我不知道我可以通過所有教師的數據,從Rails的的JavaScript,並顯示在實施燈箱一個js數據...

任何人都可以提供這方面的幫助?

回答

1

你可以用ajax做到這一點。 Simpliest的方法是使用的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