2012-10-30 103 views
1

我有一個應用程序,其中實現了jquery fullcalendar。在一天中,我需要將選定的日期作爲params傳遞給rails控制器。當我在dayclick函數內提醒日期時,我以「Tue Oct 30 2012 12:40:20 GMT + 0530(IST)」的格式得到日期。但是,當我將jquery ajax作爲params傳遞給rails控制器時,它傳遞空白。我如何成功地在軌道控制器中獲得它。請在下面找到我的代碼。將javascript日期變量傳遞給rails控制器

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

你可以在控制器中顯示你的代碼嗎?你也在螢火蟲控制檯中得到任何錯誤? –

回答

0

嘗試用一種人工構建的URL字符串的$不用彷徨電話:

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

所以這方面的一個例子是這樣的:

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

這將請求路由到「帖子」控制器和「increment_view_count」操作。

你需要記住的幾件事情,實施這個時候:

  1. 你需要確保你在routes.rb中文件相匹配的HTTP verbage(GET,POST等)的路線來支持Java腳本訪問控制器操作。

  2. 您必須確保控制器操作將響應JavaScript請求。在控制器的頂部

    respond_to :html, :js 
    

:默認情況下,控制器將無法做到這一點,所以你可以通過把作出的JavaScript請求訪問控制器的所有動作。或者像這樣創建的方法內respond_to代碼塊:

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

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

我也是用「$ .getScript」而不是「$不用彷徨」,這可能是你想看看別的吧。

+0

此外,js.erb文件只能從服務器訪問,而不能從客戶端訪問,因此將Ruby嵌入到客戶端js文件中將無法工作。看到這個回答:http://stackoverflow.com/a/1127864/853006 – louism2

相關問題