2012-10-30 100 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

相关问题