rails应用程序中的日历

时间:2012-05-26 16:46:42

标签: jquery ruby-on-rails ruby ruby-on-rails-3

我正在努力在我的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>

1 个答案:

答案 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

当然,听起来不像生日,周年纪念日和假期都不同,为什么不将它们重构为具有事件类别关联的事件模型?无论如何,你的实施方式取决于你,只是一个建议!