【问题标题】:How to add an id to fullcalendar events url in Rails?如何在 Rails 中向 fullcalendar 事件 url 添加 id?
【发布时间】:2020-04-09 00:48:31
【问题描述】:

如何在 Rails 中将 id 附加到完整日历事件 url?

我有一个 json.jbuilder

json.array!(@estudiante.clases) do |clase|
  json.extract! clase, :id
  json.id clase.id
  json.title clase.name
  json.start clase.start
  json.end clase.end
  json.dow [1, 4]
  json.url listar_clases_estudiante_url(clase, format: :html)
end

还有一个完整的 Javascript:

var initialize_calendar;
initialize_calendar = function() {
  $('.calendar').each(function() {
    var calendar = $(this)
    calendar.fullCalendar({
      defaultView: 'agendaWeek',
      events: '/estudiantes/listar_clases.json'
    });
  })
};
$(document).on('turbolinks:load', initialize_calendar);

问题是事件是从 url /estudiantes/listar_clases.json 检索的。但我希望网址为/estudiantes/listar_clases/{whatever_the_estudiante_id_is}.json

例如: /estudiantes/listar_clases/1.json/estudiantes/listar_clases/7.json,更改号码为@estudiante.id。

那么我如何将 estudiante id 传递给 json events url?

谢谢。

【问题讨论】:

  • 您需要设置相应的路由和控制器操作,以便允许此类带有 ID 的请求。此外,这些路线看起来也不是很 RESTful。最好有一条路线 GET /estudiantes/1/clases。附加路由和接收请求的控制器,以便我可以为您提供更多详细信息。
  • 来自 routes.rb:get 'estudiantes/listar_clases/:id', to: 'estudiantes#listar_clases', as: 'listar_clases_estudiante'。而在estudiantes_controller.rb中,函数listar_clases为空。

标签: javascript ruby-on-rails json


【解决方案1】:

要将 id 传递给 fullcalendar JS,我必须将其添加到 listar_clases.html.erb 视图中:

<div id="idestudiante" style='display:none;'>
  <%=@estudiante.id%>
</div>

在全日历 JS 中:

var initialize_calendar;
initialize_calendar = function() {
  $('.calendar').each(function() {
    var calendar = $(this)
    calendar.fullCalendar({
      defaultView: 'agendaWeek',
      events: '/estudiantes/listar_clases/' + $("#idestudiante").text() + '.json'
    });
  })
};
$(document).on('turbolinks:load', initialize_calendar);

以便当前学生的 id 可以附加到完整日历事件 url 的末尾。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    相关资源
    最近更新 更多