2011-12-12 4 views
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을 보여 드리고자합니다. 나는 이것을 구현하기 위해 javacript이 필요하다고 생각합니다. 하지만

누구든지 여기에 대한 도움을 제공 할 수 있습니다 ... 내가 자바 스크립트레일에서 모든 교사의 데이터를 전달하고 라이트 박스 구현 된 JS에서 데이터를 표시하는 방법을 몰라?

답변

1

아약스로 할 수 있습니다. 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>

처럼 다음이 자바 스크립트

$(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로 이동하는 것이 더 좋습니다.

관련 문제