Ruby on rails RoR设计自定义注册页面

Ruby on rails RoR设计自定义注册页面,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我使用Desive和simple_表单,似乎无法在Desive未生成的视图上获得简单的注册。感谢您的帮助 = simple_form_for @user do |f| = f.input :email = f.input :password = f.input :password_confirmation = f.submit "Create", class: "btn btn-blue" 控制器: def set_user @user = params[:id] ? User.fin

我使用Desive和simple_表单,似乎无法在Desive未生成的视图上获得简单的注册。感谢您的帮助

= simple_form_for @user do |f|
 = f.input :email
 = f.input :password
 = f.input :password_confirmation
 = f.submit "Create", class: "btn btn-blue"
控制器:

def set_user
@user = params[:id] ? User.find(params[:id]) : User.new
end

def new
end

 def create
  @user = User.new(user_params)
  respond_to do |format|
    if @user.save
      redirect_to overview_path, notice: "logged in"
     else
      format.html { render action: 'new' }
      format.json { render json: @event.errors, status: :unprocessable_entity }
   end
 end
end
此外,正在传入的参数:

user[email]:lol@lol.com
user[password]:123123
user[password_confirmation]:123123
commit:Sign up
但是@user.password=nil,它返回一个错误


提前谢谢

在你的控制器里有这样的东西吗?(或者您的属性是否可访问?)


检查您的路线,查看您的路径是否正在更改。也就是说,您将拥有自己的控制器,因此路径必须定义为

devise_for :users, :controllers => { :registrations => 'registrations' }

Deviate附带用于登录/注销的默认视图。要覆盖“设计”视图,需要首先使用以下命令生成它们:

rails生成设备:视图


从那里,您可以转到app\views\designe\sessions\new并更改标准模板。根据我的经验,这是最简单的方法。

使用Desive,您在d/b中加密了密码字段,而不是密码和密码确认,这些只是虚拟属性。是的,但您仍然分配用户[密码]在你要传递给Desivewas的参数中,不允许:password:PDevise也创建了一个模板,但似乎你解决了你的问题。
devise_for :users, :controllers => { :registrations => 'registrations' }