Reputation: 647
My code is : users_controller.rb
**class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def create
@user.create(user_params)
if @user.save
@user.fullname = @user.firstname + ‘ ‘ + @user.lastname
end
end
end**
user.rb code :
**class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :lname, presence:true, length: {maximum: 40}
validates :fname, presence:true, length: {maximum: 40}
validates :fullname, presence:true, length: {maximum: 80}
has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/assets/default_image.jpeg"
validates_attachment_content_type :avatar, content_type: /\Aimage\/.*\z/
has_many :rooms
end**
And
new.html.erb code :
**
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<%= render 'shared/devise_errors' %>
<div class="form-group">
<%= f.text_field :lname, autofocus: true, class: "form-control", placeholder: "Prénom" %>
</div>
<div class="form-group">
<div class="form-group">
<%= f.text_field :fname, autofocus: true, class: "form-control", placeholder: "Nom de famille" %>
</div>
<div class="form-group">
<div class="form-group">
<%= f.text_field :fullname, autofocus: true, class: "form-control", placeholder: "Nom complet ( Prénom + Nom)" %>
</div>
<div class="form-group">**
I would like that when user fill in lname and fname fields, fullname will be automatically fill in with lname + ' ' +fname.
Thanks for your help
Upvotes: 0
Views: 37
Reputation: 463
in the form, just let user fill firstname and lastname, delete the fullname text_field. auto generate and save fullname in the backend.
class UsersController < ApplicationController
def create
user_params[:fullname] = "#{user_params[:firstname]} #{user_params[:lastname]}"
@user.create(user_params)
end
end
Upvotes: 1