2011-03-19 164 views
1

在我的视频控制器创建方法,这行的工作:为什么current_user给我一个错误?

@video = Video.new(params[:video]) 

不过,我想分配视频给用户,所以我用这条线,给了我一个错误:

@video = current_user.videos.new(params[:video]) 

这是错误:

NoMethodError in VideosController#create 

undefined method `videos' for nil:NilClass 

我有这个在我的用户模型:

has_many :videos 

这在我的视频模式:

belongs_to :user 

这是我application_controller文件:

def current_user 
    return unless session[:user_id] 
    @current_user ||= User.find_by_id(session[:user_id]) 
    end 

    # Make current_user available in templates as a helper 
    helper_method :current_user 

如何解决这个问题?让我知道我是否应该再发布代码。

回答

3

仅当用户未登录或没有会话[:user_id]时才会发生此错误?

当未登录:

@video = current_user.videos.new(params[:video]) 

...是...

@video = nil.videos.new(params[:video]) 

这将使你确切NoMethodError

+0

是的,好抓。 – 2011-03-19 07:31:52

相关问题