2017-07-04 43 views
-1

我已經使用first_name和last_name字段創建了用戶遷移。我還爲用戶生成了Devise視圖。在我編輯的設計註冊表格中有first_name和lastname字段。當我嘗試註冊時,當我按下注冊時,它顯示first_name和Last_name不能爲空,即使這些字段不爲空。 用戶模型:設計註冊表單顯示第一個名稱即使在輸入名字後也不能爲空

class User < ApplicationRecord 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    validates :first_name, :last_name, :email, presence: true 
end 

用戶遷移:

class CreateUsers < ActiveRecord::Migration[5.1] 
    def change 
    create_table :users do |t| 
     t.string :first_name 
     t.string :last_name 
     t.string :email 
    end 
    end 
end 

設計註冊形式:

[![<h2>Sign up</h2> 

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div class="field"> 
    <%= f.label :first_name %><br /> 
    <%= f.text_field :first_name, autofocus: true %> 
    </div> 

    <div class="field"> 
    <%= f.label :last_name %><br /> 
    <%= f.text_field :last_name, autofocus: true %> 
    </div> 

    <div class="field"> 
    <%= f.label :email %><br /> 
    <%= f.email_field :email, autofocus: true %> 
    </div> 

    <div class="field"> 
    <%= f.label :password %> 
    <% if @minimum_password_length %> 
    <em>(<%= @minimum_password_length %> characters minimum)</em> 
    <% end %><br /> 
    <%= f.password_field :password, autocomplete: "off" %> 
    </div> 

    <div class="field"> 
    <%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation, autocomplete: "off" %> 
    </div> 

    <div class="actions"> 
    <%= f.submit "Sign up" %> 
    </div> 
<% end %> 

<%= render "devise/shared/links" %>][1]][1] 

回答

1

你需要將它們添加到強PARAMS的色器件控制器。

您可以創建自己的(這擴展設計),然後:

class RegistrationsController < Devise::RegistrationsController 

private 

def sign_up_params 
    params.require(:user).permit(:first_name, :last_name, :email, :password, 
    :password_confirmation) 
end 

def account_update_params 
    params.require(:user).permit(:first_name, :last_name, :email, :password, 
    :password_confirmation, :current_password) 
end 
end 

Here's a good guide

祝你好運!

相關問題