我正在努力在我的rails 3.2应用程序中实现日历。我发现这个很棒的railscast解释了一个完全符合我需要的插件。但是,我需要从多个模型中提取数据,而不仅仅是一个..任何人都知道这个解决方案吗?
即 - 我有单独的生日,周年纪念日和假期表,并希望将它们全部显示在同一个日历上......只有一个物品模型可以处理这个轨道广播..
谢谢!
http://railscasts.com/episodes/213-calendars
https://github.com/watu/table_builder
用户/ show.html.erb
<div id="calendar">
<h2 id="month">
<%= link_to "<", :month => (@date.beginning_of_month-1).strftime("%Y-%m") %>
<%=h @date.strftime("%B %Y") %>
<%= link_to ">", :month => (@date.end_of_month+1).strftime("%Y-%m") %>
</h2>
<%= calendar_for @friends, :year => @date.year, :month => @date.month do |calendar| %>
<%= calendar.head('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun') %>
<%= calendar.day(:day_method => :dob) do |date, friends| %>
<%= date.day %>
<ul>
<% friends.each do |friend| %>
<li> <%= h(friend.name) %><%= "\'s birthday"%></li>
<% %>
<% end %>
</ul>
<% end %>
<% end %>
</div>
答案 0 :(得分:1)
日历表只是构建一个数组(也就是说,从活动记录查询中设置结果)。如果您需要它来处理不同的模型,您只需执行以下操作:
def calendar_action
#assumes a scope of this_month on each model
@events = []
@events << Birthday.this_month
@events << Anniversary.this_month
@events << Holiday.this_month
end
当然,听起来不像生日,周年纪念日和假期都不同,为什么不将它们重构为具有事件类别关联的事件模型?无论如何,你的实施方式取决于你,只是一个建议!