Ruby on rails 如何在rails事件日历插件中添加显示事件的弹出面板?
我在项目中使用了rails插件,需要对日历进行一些修改。当它显示事件时,我需要弹出一个面板,显示有关该特定事件的详细信息。请一些专家解释一下这个问题的解决方案好吗?假设您使用的是默认示例,您可以使用为每个日历事件呈现的链接输入自己的自定义解决方案。就我而言,我做了这样的事情:Ruby on rails 如何在rails事件日历插件中添加显示事件的弹出面板?,ruby-on-rails,calendar,Ruby On Rails,Calendar,我在项目中使用了rails插件,需要对日历进行一些修改。当它显示事件时,我需要弹出一个面板,显示有关该特定事件的详细信息。请一些专家解释一下这个问题的解决方案好吗?假设您使用的是默认示例,您可以使用为每个日历事件呈现的链接输入自己的自定义解决方案。就我而言,我做了这样的事情: def event_calendar calendar event_calendar_opts do |args| event, day = args[:event], args[:day] html
def event_calendar
calendar event_calendar_opts do |args|
event, day = args[:event], args[:day]
html = link_to display_event_time(event, day) + h(event.name), [event.calendar, event], :class => "calendar-event", "data-id" => event.id
html += event_tooltip(event)
end
end
def event_tooltip(event)
raw "<div id="event_#{event.id}" class='event-tooltip' style="display:none">#{event.description}</div>"
end
不是我的确切代码,但希望能给你一个起点。您还可以将所需的所有元素放在链接本身中,例如“数据描述”和“数据标题”,避免在每个元素后隐藏插入div,只需根据需要在JS中构建一个即可。首先,您必须将html链接更改为Ajax链接,如下所示
link_to_remote event.name, :url => {:controller => 'events', :action => 'get_events',:id=>event.id }
您必须编写控制器代码以显示事件的详细信息。就我而言,我写的如下
def get_events
@event = Event.find(params[:id])
end
此外,还必须创建get_events.rjs文件以加载弹出框,如下所示
page.replace_html 'show_event', :partial => 'show_event'
page<< "$ ('#show_event_dialog').dialog({
title: 'Event',
modal: true,
width: 500,
close: function(event, ui) { $('#show_event_dialog').dialog('destroy') }
});"
page.replace_html'show_event',:partial=>'show_event'
pageStill我是rails新手,请您解释一下您的解决方案好吗??(例如,您使用的方法和建议的方法)如果您查看其上的示例,它们基本上会为您提供一个复制粘贴示例,以放置在您的助手中,这是我示例的事件日历
部分。第二部分(工具提示)是我呈现一个简单的div
,其中包含事件描述文本。默认情况下,这个div
是隐藏的,因此我添加了一点jQuery来粗略地确定您可以在哪里显示div。查看git页面上的自述文件,了解如何使用日历的更好示例,它应该更有意义
page.replace_html 'show_event', :partial => 'show_event'
page<< "$ ('#show_event_dialog').dialog({
title: 'Event',
modal: true,
width: 500,
close: function(event, ui) { $('#show_event_dialog').dialog('destroy') }
});"