我有两个不同的模型:Note
和Todo
。每个属性都有自己想要显示在日历上的属性。
我正在尝试在events
上显示一种以上的simple_calendar
,但是不断出现错误,undefined method 'start_time' for #<Note::ActiveRecord_Relation:0x007ffce4182638>
这是我的代码:
<%= calendar number_of_days: 1, events: [@notes, @todos] do |date, notes, todos| %>
<%= date %>
<% notes.each do |note| %>
<div>
<%= note.title %>
</div>
<% end %>
<% todos.each do |todo| %>
<div>
<%= todo.title %>
</div>
<% end %>
<% end %>
答案 0 :(得分:0)
我认为错误是因为events: [@notes, @todos]
正在创建一个包含两个元素@notes
和@todos
的新数组,并且当它调用start_time
时是针对@Notes
的这是ActiveRecord关系(在Rails最新版本上),而不是Note
对象。
我碰到这篇文章,寻找一种使用excid3's simple_calendar在一天中插入多种事件类型的方法。目前我还没有提出解决方案,我想您正在寻找相同的解决方案。
答案 1 :(得分:0)
遇到同样的问题。
events
具有某种联系,您使用的语法在形式和其他一些实用程序的情况下是正确的,但它可能尚未引起该gem的开发人员的注意。
解决方案(解决方法)
<%= calendar number_of_days: 1, events: @notes+@todos do |date, events| %>
<%= date %>
<% events.each do |event| %>
<div>
<%= event.title %> <%# if both models have same column that you wanna show like this case, otherwise see solution below.%>
</div>
<% end %>
<% end %>
OR
<%= calendar number_of_days: 1, events: @notes+@todos do |date, events| %>
<%= date %>
<% events.each do |event| %>
<div>
<% if event.is_a? Note %>
<% "show_something_for_note" %>
<% elsif event.is_a? Todo %>
<% "show_something_for_todo" %>
<% end %>
</div>
<% end %>
<% end %>
那怎么样? ;)