1

我有一个实现 jquery fullcalendar 的应用程序。在点击当天,我需要将选定的日期作为参数传递给 rails 控制器。当我在 dayclick 函数中提醒日期时,我得到的日期格式为“Tue Oct 30 2012 12:40:20 GMT+0530 (IST)”.. 但是当我在 jquery ajax 中作为参数传递给 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);
  }
}
4

1 回答 1

0

尝试使用手动构建的 url 字符串进行 $.get 调用:

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

所以这方面的一个例子是这样的:

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

这会将请求路由到“posts”控制器和“increment_view_count”操作。

在实现这个时你需要记住一些事情:

  1. 您需要确保您在 routes.rb 文件中有一个匹配 http 动词(get、post 等)的路由,以允许 javascript 访问控制器操作。

  2. 您必须确保控制器操作将响应 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”,这可能是您想要查看的其他内容。

于 2012-10-30T08:37:38.670 回答