2011-02-07 1 views
2

数日前、私はhttps://github.com/elevation/event_calendarで提供されているevent_calendarソリューションをインストールしましたが、すべて正常に動作しています。今、何人かのユーザーは今のところ私のユーザーであるので、ALLの既存のイベントをdbに見ることができます。についてEvent_calendarについて現在のユーザーのイベントのみを表示し、すべてのイベントを表示しない

各ユーザーが必要とするのは、彼が参加しているイベントのみを表示することです。だから私は、ユーザーとイベントのIDだけを保持するXXXXXXXXX_create_events_users_join.rbというもう1つのマイグレーションを作成すると考えました。実際のカレンダーに現在のユーザーに属するイベントのみを表示する方法を考えてください。最適なアプローチではない移行を作成しますか?

答えて

3

解決策は機能するかもしれませんが、必要以上に複雑です。 Railsはそのようなことを内部的に管理するうまい方法を持っています。今、あなたは何をする必要があるかです:add_user_id_to_events user_id:integer

2 - >設定し関係:Userモデルで

(user.rb):

class User < ActiveRecord::Base 
    has_many :events 
    .... 
end 

1->移行を作成します。イベントモデルで

(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) 

私は助けを願って! answer.IためXeroxoid.thx @

よろしく

+0

ので、ちょうどあなたのpost.Meanwhileを見てしばらく離れていた私は宝石が付いていますカレンダーのコントローラをチェックしていたし、私は私がどこ通じ部分をスキップ推測メソッドevent.event_strips_for_month(@shown_month)いくつかの条件を渡すことができます。@event_strips = Event.event_strips_for_month(@shown_month、:conditions => ['user_id =?'、session [:user_id]])を呼び出します。コースは私のイベントの移行(t.references:ユーザー)に余分なフィールドを追加しました。今私はすべてのイベントをユーザーIDでフィルタリングしています。よろしく。 – Daniel

関連する問題