面试题答案
一键面试- 获取参数:
在Rails控制器中,可以通过
params
哈希来获取参数。假设注册表单提交的参数遵循Rails的约定,例如params[:user][:username]
、params[:user][:email]
、params[:user][:password]
。以下是在控制器方法中获取这些参数的示例:def register @username = params[:user][:username] @email = params[:user][:email] @password = params[:user][:password] end
- 验证邮箱格式和密码长度:
首先,假设你有一个
User
模型,在模型中定义验证。
在控制器中,创建一个class User < ApplicationRecord validates :email, presence: true, format: { with: URI::MailTo::EMAIL_REGEXP } validates :password, presence: true, length: { minimum: 6 } end
User
实例并进行验证:def register @user = User.new( username: params[:user][:username], email: params[:user][:email], password: params[:user][:password] ) if @user.valid? # 保存用户等逻辑 @user.save redirect_to success_path, notice: '注册成功' else render :new, status: :unprocessable_entity, alert: '注册失败,请检查输入' end end