0

我正在努力在我的 rails 3.2 应用程序中实现一个日历。我发现这个很棒的 railscast 解释了一个完全符合我需要的插件。但是,我需要从多个模型中提取数据,而不仅仅是一个模型。任何人都知道解决方案吗?

即 - 我有单独的生日、周年纪念日和假期表,并希望将它们全部显示在同一个日历上...... 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>
4

1 回答 1

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

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

于 2012-05-26T17:55:11.517 回答