Как правило, вы захотите использовать встроенную область видимости, предоставляемую Rails. Просто чтобы выяснить, что @Radar уже написал:
class ApplicationController < ActionController::Base
before_filter :find_current_user
private
def find_current_user
@current_user = User.find( session[:user_id] )
end
end
class EventsController < ApplicationController
def create
@event = @current_user.events.build( params[:event] )
@event.save!
end
end
Предполагается, что вы настроили ассоциации в вашей модели:
class User
has_many :events
end
class Event
belongs_to :user
end
Это также довольно удобный механизм, если вам нужно ограничить то, что пользователь может видеть или редактировать:
class EventsController < ApplicationController
def index
@events = @current_user.events # only fetch current users events
end
def update
@event = @current_user.events.find( params[:id] ) # can't update other user's events
@event.update_attributes!( params[:event] )
end
end