关于Event_calendar.Showing仅显示当前用户的事件,而不是所有事件

时间:2011-02-07 19:33:27

标签: ruby-on-rails-3

几天前我安装了https://github.com/elevation/event_calendar提供的event_calendar解决方案,一切正常。现在我已经意识到我将拥有多个用户,并且因为他们是对的现在,我的任何用户都可以在数据库中看到所有现有事件。

我需要的是每个用户只能看到他所参与的事件;所以我想再创建一个名为XXXXXXXXX_create_events_users_join.rb的迁移,其中我只保留用户和事件的ID。所以我应该如何在实际日历上只显示属于当前用户的事件。或者是它创建迁移不是最好的方法吗?

1 个答案:

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

希望我帮忙!

此致