几天前我安装了https://github.com/elevation/event_calendar提供的event_calendar解决方案,一切正常。现在我已经意识到我将拥有多个用户,并且因为他们是对的现在,我的任何用户都可以在数据库中看到所有现有事件。
我需要的是每个用户只能看到他所参与的事件;所以我想再创建一个名为XXXXXXXXX_create_events_users_join.rb的迁移,其中我只保留用户和事件的ID。所以我应该如何在实际日历上只显示属于当前用户的事件。或者是它创建迁移不是最好的方法吗?
答案 0 :(得分:3)
您的解决方案可能有效,但它比需要的要复杂得多。 Rails有一种很好的方式来管理这样的事情。现在你需要做的是:
1→创建迁移:add_user_id_to_events user_id:integer
2→设置关系:
用户模型中的(user.rb):
事件模型中的class User < ActiveRecord::Base has_many :events .... end
(event.rb):
class Event < ActiveRecord::Base has_event_calendar belongs_to user .... end
3→然后在事件视图中,您可以使用例如:
... <% @user.events.each do |event| %> <tr> <td><%= event.name %></td> .... </tr> <% end %> ...
并且您只需要更改日历:
@event_strips = Events.event_strips_for_month(@shown_month)
类似
@event_strips = current_user.events.event_strips_for_month(@shown_month)
希望我帮忙!
此致