fullCalendar 用户事件

fullCalendar User events

我累了。我有基本的 fullCalendar for User 模型。我想添加 2 个按钮,用户可以在其中将日历分成两部分。一开始他只得到他的事件,几秒钟后他得到所有用户的所有事件。我应该怎么做?我是 rails 的新人 :) 这是我的js代码

$(document).ready ->
  $("#calendar").fullCalendar(

    events: '/events.json'
    eventColor: '#378006'
    eventBackgroundColor: 'red'

  )

和我的 json 事件文件

json.array!(@events) do |event|

  json.extract! event, :id, :title, :description, :user_id
  json.start event.start_time
  json.end event.end_time

  json.url event_url(event, format: :html)
  if (event.user_id == current_user.id)
    json.color 'green'
  end

  end

为此你可以这样做:

1)在您的视图上添加两个按钮,分别命名为 "User Events" 和 "All Users Events".

2)现在在你的js中设置一个名为calEvents的全局变量。

3)现在使用按钮单击事件,这意味着当用户单击 "User Events" 按钮时将 calEvents 的值设置为等于 current_user 事件,并且如果用户单击 "All User events" 然后将 calEvents 的值更改为等于所有用户事件。

注意:确保您的活动格式应为 json。

要实现这一点,您可以编写如下代码:

calEvents = ''

$(document).on 'click', 'all_user_events', ->
  calEvents = '/events.json'
  return

$(document).on 'click', 'user_events', ->
  calEvents = '/events/user_events.json'
  return

$(document).ready ->
  calEvents = '/events.json'
  $("#calendar").fullCalendar(

    events: calEvents
    eventColor: '#378006'
    eventBackgroundColor: 'red'

)  

在您的events_controller中添加新操作

def user_events
  @events = current_user.events
  render json: @events
end

在您的 config/routs.rb 文件中

get 'events/user_events' => 'events#user_events'

编辑:

如果您想通过复选框执行此操作,您可以这样做:

$(document).on 'change', 'your_checkobx_id_to_select_user_events ', ->
  if @checked
    calEvents = 'events/user_events.json'
    return

$(document).on 'change', 'your_checkobx_id_to_select_all_events', ->
  if @checked
    calEvents = 'events.json'
    return  

希望我已经正确理解了您的问题,这会对您有所帮助。