2012-10-30 3 views
1

jquery fullcalendar가 구현 된 애플리케이션이 있습니다. 하루에 클릭하면 선택한 날짜를 매개 변수로 레일 컨트롤러에 전달해야합니다. Dayclick 함수 내부의 날짜를 경고 할 때 "Tue Oct 30 2012 12:40:20 GMT + 0530 (IST)"형식으로 날짜를 가져옵니다. 그러나 레일즈 컨트롤러에 jquery ajax의 params로 전달할 때, 그것은 비어 있습니다. 레일즈 컨트롤러에서 어떻게 성공적으로 얻을 수 있습니까? 아래 dayclick에 대한 내 코드를 찾으십시오.javascript date 변수를 레일즈 컨트롤러에 전달하십시오.

dayClick: function(date, allDay, jsEvent, view) { 
    var date = $('#calendar').fullCalendar('getDate'); 
    alert(date); 
    $.get("<%=update_projects_admins_users_path%>", 
    { 
     id:'<%=params[:user]%>', 
     date_selected: date 
    }, 
    function(data) { 
     $('.active_projects').html(data); 
     //alert("Data: " + data + "\nStatus: " + status); 
    } 
); 
    if (allDay) { 
    alert('Clicked on the entire day: ' + date); 
    } 
} 
+0

코드를 컨트롤러에 표시 할 수 있습니까? 또한 firebug console에 오류가 있습니까? –

답변

0

수동으로 구성 URL 문자열을 사용하여 $ 갔지 호출을 만드는 시도 :

$.getScript("/posts/increment_view_count.js?id="+id) 

이 것 경로 요청 :

$.getScript("/controller/action/params") 

그래서이의 예는 다음과 같을 것을 "posts"컨트롤러와 "increment_view_count"액션에 적용됩니다.

당신이 일치하는 HTTP의 verbage를 (GET, POST 등)와 routes.rb 파일의 경로가 있는지 확인해야합니다
  1. 자바 스크립트를 허용하려면이를 구현할 때

    당신은 몇 가지를 기억해야합니다 컨트롤러 동작에 액세스합니다.

  2. 컨트롤러 작업이 자바 스크립트 요청에 응답하는지 확인해야합니다. 기본적으로 컨트롤러는이 그래서 당신은 넣어 자바 스크립트의 요청에 액세스 할 수있는 컨트롤러의 모든 작업을 할 수 있습니다하지 않을 것이다 :

    respond_to :html, :js 
    

을 컨트롤러의 상단에. 또는과 같이 메소드 내부 respond_to 블록을 만듭니다 :

def index 
@people = Person.find(:all) 

respond_to do |format| 
    format.html 
    format.js 
end 
end 

을 내가 대신 당신이보고 싶은 뭔가 다른 수 있습니다 "$의 갔지"의 "$ .getScript"를 사용하고 있습니다.

+0

또한 js.erb 파일은 클라이언트가 아닌 서버에서만 액세스 할 수 있으므로 클라이언트 측 js 파일에 Ruby를 임베드 할 수 없습니다. 이 그래서 대답을 참조하십시오 : http://stackoverflow.com/a/1127864/853006 – louism2

관련 문제