0

我有一个非常简单的 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,则保存,然后使用消息重定向。

4

1 回答 1

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

在这种情况下,您不会强迫用户填写表格。

于 2013-05-15T23:48:47.860 回答