О Event_calendar.Показывать только события для текущего пользователя и не все события присутствующие - PullRequest
2 голосов
/ 07 февраля 2011

Пару дней назад я установил решение event_calendar, которое предлагает https://github.com/elevation/event_calendar, и все работает нормально. Теперь я понял, что у меня будет несколько пользователей, и я буду таким, какой они есть.сейчас любой из моих пользователей может видеть ALL существующих событий в БД.

Мне нужно, чтобы каждый пользователь видел только те события, частью которых он является;поэтому я подумал создать еще одну миграцию под названием XXXXXXXXX_create_events_users_join.rb, в которой я буду хранить только идентификаторы пользователей и событий. Так как я должен отображать в реальном календаре только события, принадлежащие текущему пользователю.создание этой миграции не лучший подход?

1 Ответ

3 голосов
/ 27 февраля 2011

Ваше решение может работать, но оно намного сложнее, чем нужно. У 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) 

Надеюсь, я помог!

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...