2012-04-24 91 views
1

我正在根据这个railscast邀请,我在我的应用程序中使用设计进行身份验证。我想得到这一点的代码执行:如何覆盖设计注册控制器

def new 
    @user = User.new(:invitation_token => params[:invitation_token]) 
    @user.email = @user.invitation.recipient_email if @user.invitation 
end 

设计内部。这涉及覆盖注册控制器。这是新的行动,是在注册控制器:

def new 
    resource = build_resource({}) 
    respond_with resource 
    end 

我是比较新的编码和做出了尝试通过色器件代码进行筛选,并找出发生了什么事情,但似乎令人生畏。有没有简单的事情?我如何通过覆盖设计注册控制器来实现该代码?

回答

0

他甚至给出了错误?另一件事,你改变了你的routes.rb?例如:

devise_for :users, :controllers => { :registrations => "registrations" } 

在他的方法 “新”,加上超级

def new 
    @user = User.new(:invitation_token => params[:invitation_token]) 
    @user.email = @user.invitation.recipient_email if @user.invitation 
    super 
end