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 に答える