管理者アカウントでユーザーアカウントを作成すると、ユーザーの姓と名字によって自動的にユーザー名が生成されます。 ユーザー名が作成されたら、ユーザーは一度しか更新できないようにしたい - 注:これはいつでも、または複数のログイン後でも可能ですが、ユーザー名が一度変更されると変更される必要があります。ユーザーモデルの属性を一度だけ更新できるようにする
Railsとsimple_formを使用しています。編集フォームは以下の通りです。
= simple_form_for(current_user) do |f|
= f.error_notification
.form-inputs
= f.input :name, required: true, label: 'Name'
= f.input :username, required: true
= f.input :email, required: true
= f.input :password, required: true, placeholder: ("#{@minimum_password_length} characters minimum" if @minimum_password_length)
= f.input :password_confirmation, required: true
.form-actions
= f.button :submit, "Update Profile", class: 'btn btn-primary btn-block btn-lg'
Admin/Usersコントローラ。
def create
@user = User.new(user_params)
@user.password = SecureRandom.base64()
nameArray = @user.name.split(' ')
@user.username = nameArray[0][0].downcase + nameArray[-1][0..6].downcase
respond_to do |format|
if @user.save
@user.send_reset_password_instructions
format.html do
redirect_to [:admin, @user],
notice: "#{@user} was successfully created. A confirmation email was sent to: #{@user.email}"
end
else
format.html do
flash[:alert] = "User #{@user} already exists, or you have not filled in all of the required fields."
render :new
end
end
end
end
ありがとうございます。
に '.updated_at'を更新することができ、他のものがある場合を除きユーザーレコード。 – Joe