FullCalendar-Rails 通过 JavaScript 传输用户 ID



>我有一个问题,我正在使用全日历轨道构建日历,我有一个小问题。我正在使用事件源函数(url参数(,因此日历知道在哪里检索要显示的事件。但我的事件资源嵌套在我的用户资源下。因此,要访问事件,我需要遵循以下路线 ->"用户/:id/events"。所以我的问题是如何将这些必需的参数传输到事件源:url函数?另外,我只想提一下我正在使用 json,因此日历可能能够显示事件。在我的 json 数组中,我有一个包含事件网址的 url 参数,有没有办法让我传输该 json.url ?

很抱歉,我还没有显示我的任何代码,但我目前正在工作,我无法访问它。就像访问电脑一样轻松重新编辑它并显示我的代码。它困扰了我这么久,所以我认为 Id 只是先问一下。

提前谢谢。

日历.js.咖啡

$(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

路线.rb

Rails.application.routes.draw do
  get 'staticpages/welcome'
  get 'staticpages/about'
  get 'staticpages/contact'
  get 'calendar/index'
  root 'staticpages#welcome'
  devise_for :users
  resources :users, :only => [:show] do
    member do
      resources :events, :as => :user_events
    end
  end

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"

您可以更改current_user以 user.id

然后,添加以下内容:

gon.user_path = @users_path

在你的 FullCalendar JavaScript 中。执行以下操作:

$(document).on('turbolinks:load', function() {
    var user_path = gon.user_path;
    $('#calendar').fullCalendar({
        events: user_path,
    });
});

仅此而已。它将根据需要呈现。

相关内容

  • 没有找到相关文章

最新更新