我有一个应用程序,其中实现了jquery fullcalendar。在一天点击我需要将所选日期作为参数传递给rails控制器。当我在dayclick函数中提醒日期时,我将以“Tue Oct 30 2012 12:40:20 GMT + 0530(IST)”的格式获取日期。但是当我在jquery ajax中将params传递给rails控制器时,它传递空白。如何成功地在rails控制器中获取它。请在下面找到我的Dayclick代码。
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字符串进行$ .get调用:
$.getScript("/controller/action/params")
所以这样的一个例子就是:
$.getScript("/posts/increment_view_count.js?id="+id)
这会将请求路由到“posts”控制器和“increment_view_count”操作。
执行此操作时需要记住以下几点:
您需要确保在routes.rb文件中有一条路由,其中包含匹配的http verbage(get,post等),以允许javascript访问控制器操作。
您必须确保控制器操作将响应javascript请求。默认情况下,控制器不会执行此操作,因此您可以通过执行以下操作使控制器中的所有操作都可以访问javascript请求:
respond_to :html, :js
位于控制器的顶部。或者在方法中创建一个respond_to块,如下所示:
def index
@people = Person.find(:all)
respond_to do |format|
format.html
format.js
end
end
我也使用“$ .getScript”代替“$ .get”,这可能是你想看的其他内容。