2013-05-15 50 views
0

我有一个非常简单的Rails应用程序,我从头开始创建一个非常基本的身份验证来处理用户帐户等,我想暂时关闭我的应用程序中的注册并想知道什么最好的方法是做到这一点。这是我创建的用户动作:从头开始关闭Rails应用程序的用户注册

def create 
    @user = User.new(params[:user]) 
    if @user.save 
    session[:user_id] = @user.id 
    redirect_to root_url, notice: "All signed up!" 
    else 
    render "new" 
    end 
end 

我在想,是确保用户可以立即登记没有去检查环境变量,然后双击在我的控制器类似下面的检查了这种方式:

def create 
    @user = User.new(params[:user]) 
    if @user.save && registration == 1 
    session[:user_id] = @user.id 
    redirect_to root_url, notice: "All signed up!" 
    elsif registration == 0 
    redirect_to root_url, notice: "Sorry we are not accepting new signups" 
    else 
    render "new" 
    end 
end 

这是最好的方法吗?在记录保存我检查,如果注册变量等于true,然后保存,如果不是它等于false然后重定向与消息。

回答

1

更好的办法是放置在新方法里面,将消息重定向回用户关于注册的关闭。您目前的解决方案是阴险的,并在用户已经花时间登记表格后发出通知。

因此,这将是这样的:

def new 
if true #switch to false if you need to enable registration. 
    redirect_to root_url, notice: "Sorry we are not accepting new signups" 
else 
    #Your other code goes here 
end 
end 

在这种情况下,你不能强迫用户填写表单。

+0

谢谢,公平点提高了用户体验。 – calabi

相关问题