Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
fullcalendar rails通过javascript传输用户id_Javascript_Ruby On Rails_Ruby_Json_Fullcalendar - Fatal编程技术网

fullcalendar rails通过javascript传输用户id

fullcalendar rails通过javascript传输用户id,javascript,ruby-on-rails,ruby,json,fullcalendar,Javascript,Ruby On Rails,Ruby,Json,Fullcalendar,我有一个问题,我正在使用fullcalendar rails构建日历,我有一个小问题。我正在使用eventsources函数(url参数),因此日历知道从何处检索要显示的事件。但是我的事件资源嵌套在我的用户资源下。因此,要访问事件,我需要遵循以下路径->“users/:id/events”。所以我的问题是如何将这些必需的参数传递到eventsources:url函数?另外,我只想提到我使用的是json,所以日历可能能够显示事件。在我的json数组中,我有一个url参数,其中包含事件的url。有什

我有一个问题,我正在使用fullcalendar rails构建日历,我有一个小问题。我正在使用eventsources函数(url参数),因此日历知道从何处检索要显示的事件。但是我的事件资源嵌套在我的用户资源下。因此,要访问事件,我需要遵循以下路径->“users/:id/events”。所以我的问题是如何将这些必需的参数传递到eventsources:url函数?另外,我只想提到我使用的是json,所以日历可能能够显示事件。在我的json数组中,我有一个url参数,其中包含事件的url。有什么方法可以传递这个json.url吗

很抱歉,我还没有显示我的任何代码,但我目前正在工作,无法访问它。一旦进入电脑,我会重新编辑并显示我的代码。它困扰了我这么久,所以我想我应该先问一下

提前谢谢

calendar.js.coffee

$(document).ready ->
  $('#calendar').fullCalendar
   editable: true,
   header:
   left: 'prev,next today',
   center: 'title',
   right: 'month,agendaWeek,agendaDay'
   defaultView: 'month',
   height: 500,
   slotMinutes: 30,

eventSources: url: "/events.json" <----This is the part that where the calendar reads the events from but i need it to be 'users/:id/events.json'

timeFormat: 'H(:mm) ',
dragOpacity: "0.5",

displayEventEnd: 
    month: true,
    basicWeek: true

eventDrop: (event, dayDelta, minuteDelta, allDay, revertFunc) ->
  updateEvent(event);

eventResize: (event, dayDelta, minuteDelta, revertFunc) ->
  updateEvent(event);


updateEvent = (the_event) ->
 $.update "/events/" + the_event.id,
   event:
     title: the_event.title,
     starts_at: "" + the_event.start,
     ends_at: "" + the_event.end,
     description: the_event.description
index.json.jbuilber

json.array!(@events) do |event|
json.extract! event, :id, :title, :description
json.start event.starts_at
json.end event.ends_at
json.allday event.all_day
json.url event_url(event, format: :html)
end
我想出来了

添加一个名为“Gon”的宝石

在用户控制器中,添加一个变量以获取URL,如:

@users_path = "users/#{current_user}/events.json"
您可以更改user.id的当前用户

然后,添加以下内容:

gon.user_path = @users_path
$(document).on('turbolinks:load', function() {
    var user_path = gon.user_path;

    $('#calendar').fullCalendar({
        events: user_path,
    });
});
在您的完整日历JavaScript中。请执行以下操作:

gon.user_path = @users_path
$(document).on('turbolinks:load', function() {
    var user_path = gon.user_path;

    $('#calendar').fullCalendar({
        events: user_path,
    });
});

就这样。它将根据您的需要进行渲染。

您想显示所有事件还是当前用户特有的事件?任何人都可以访问每个事件吗?不,我只想显示当前登录用户的事件。好的,那么你可以在url中使用当前的_user.id,对吗?你可以试试吗?嘿,我现在添加了代码,正如你在(calendar.js)中看到的那样,我正在尝试将带有正确:id参数的url发送到javascript中。但是eventsources获取的url是一个字符串。所以,我想知道是否可以从calendar将我的json.url发送到evenSources,因为它实际上包含一个url字符串,带有正确的:id参数。如果不是,正确的做法是什么?谢谢