Reputation: 71
I am with this configuration: Activestorage in my localhost:3000 with rails 5.2
I have the next code in my user sign in:
"<div class="panel panel-default">
<div class="panel-heading">
<h1 class="display-4"> Seamos cómplices para cumplir nuestros sueños. </h1>
<h3 class="text-center"> Llenando este sencillo formulario recibirás al final nuestra agenda biodinámica con los 12 pasos volver tu sueño realidad. </h3>
<p style="text-align:center;">
<iframe width="100%" height="315" align="middle" src="https://www.youtube.com/embed/pDKDtS6Z4oY" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</p>
</div>
<div class="panel-body">
<br /><br />
<div class="container">
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :post, class: 'form-horizontal' }) do |f| %>
<%= devise_error_messages! %>
<div class="stepwizard">
<div class="stepwizard-row setup-panel">
<div class="stepwizard-step">
<a href="#step-1" type="button" class="btn btn-primary btn-circle">1</a>
<p>Paso 1</p>
</div>
<div class="stepwizard-step">
<a href="#step-2" type="button" class="btn btn-default btn-circle" disabled="disabled">2</a>
<p>Paso 2</p>
</div>
<div class="stepwizard-step">
<a href="#step-3" type="button" class="btn btn-default btn-circle" disabled="disabled">3</a>
<p>Paso 3</p>
</div>
</div>
</div>
<form role="form">
<div class="row setup-content" id="step-1">
<div class="col-xs-12">
<div class="col-md-12">
<h3> Paso 1</h3>
<br />
<div class="form-group">
<%= f.label :username, "Username (elige un nombre de usuario)" %>
<br />
<%= f.text_field :username, placeholder: "Elige el nombre de usuario que desees", class: "form-control", required: true, autofocus: true, type: "input" %>
</div>
<div class="form-group">
<%= f.label :name, "Nombre" %>
<br />
<%= f.text_field :name, placeholder: "Pon aquí tu Nombre", class: "form-control", autofocus: true, type: "input" %>
</div>
<div class="form-group">
<%= f.label :lastname, "Apellido" %>
<br />
<%= f.text_field :lastname, placeholder: "Pon aquí tu Apellido", class: "form-control", autofocus: true, type: "input" %>
</div>
<button class="btn btn-primary nextBtn btn-lg pull-right" type="button" >Siguiente</button>
</div>
</div>
</div>
<div class="row setup-content" id="step-2">
<div class="col-xs-12">
<div class="col-md-12">
<h3> Paso 2</h3>
<br />
<div class="form-group">
<%= f.label :email, "Correo Electrónico (email)" %>
<br />
<%= f.email_field :email, placeholder: "Ingresa tu correo electrónico", class: "form-control", autofocus: true, type: "input" %>
</div>
<div class="form-group">
<%= f.label :password, "Contraseña" %>
<br />
<%= f.password_field :password, placeholder: "Ingresa tu contraseña", class: "form-control", autofocus: true %>
</div>
<div class="form-group">
<%= f.label :password, "Repite tu contraseña" %>
<br />
<%= f.password_field :password_confirmation, placeholder: "Ingresa nuevamente tu contraseña", class: "form-control", autofocus: true %>
</div>
<div class="form-group">
<%= f.label "Sube tu avatar (opcional)", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<%= f.file_field :avatar, class: 'photo_upload' %>
</div>
</div>
<br /><button class="btn btn-primary nextBtn btn-lg pull-right" type="button" >Siguiente</button>
<button class="btn btn-info prevBtn btn-lg pull-left" type="button" >Anterior</button>
</div>
</div>
</div>
<div class="row setup-content" id="step-3">
<div class="col-xs-12">
<div class="col-md-12">
<h3> Paso 3</h3><br />
<div class="form-group">
<%= f.label "País *", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<%= f.text_field :country, placeholder: "Ingresa tu país de Residencia", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= f.label "Región", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<%= f.text_field :region, placeholder: "Ingresa tu región de Residencia (Estado/Departamento/Provincia)", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= f.label "Ciudad/Población", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<%= f.text_field :city, placeholder: "Ingresa tu Población (Ciudad/Municipio, Corregimiento, Vereda)", class: "form-control" %>
</div>
</div>
<div class="form-group">
<%= f.label "Fecha de Nacimiento (opcional)", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<%= f.input :born_date, as: :date_picker, label: false, placeholder: "Da click en el botón de calendario de la derecha" %>
</div>
</div>
<div class="form-group">
<%= f.label "Facebook", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<i class="fa fa-facebook"></i><%= f.text_field :facebook, class: "form-control", placeholder: "Ingresa la url - link de tu perfil de facebook" %>
</div>
</div>
<div class="form-group">
<%= f.label "Twitter", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<i class="fa fa-twitter"></i><%= f.text_field :twitter, class: "form-control", placeholder: "Ingresa la url - link de tu perfil de facebook" %>
</div>
</div>
<div class="form-group">
<%= f.label "Sitio Web", class: 'col-sm-2 control-label' %>
<div class="col-sm-6">
<i class="fa fa-external-link"></i><%= f.text_field :website, class: "form-control", placeholder: "Si tienes sitio web y quieres compartir, pon aquí la url" %>
</div>
</div>
<%= f.submit "¡Regístrate!", class: "btn btn-primary btn-lg pull-right" %>
<button class="btn btn-info prevBtn btn-lg pull-left" type="button" >Anterior</button>
</div>
</div>
</div>
</form>
<% end %>
</div>
<br />
<div class="panel-footer">
<%= render "devise/shared/links" %>
</div>
</div>
</div>"
I made the configuration for activestorage:
" local:
service: Disk
root: <%= Rails.root.join("storage") %>
test:
service: Disk
root: <%= Rails.root.join("tmp/storage") %>"
Development.rb
"config.active_storage.service = :local"
test.rb:
"config.active_storage.service = :test"
User devise model:
"has_one_attached :avatar"
Application/controller
" def configure_permitted_parameters params = [ :lastname, :username, :phone, :country, :city, :born_date, :website, :facebook, :twitter, :avatar]
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
devise_parameter_sanitizer.permit(:account_update, keys: [:name, :avatar])
end"
When i create an user i see this in my terminal:
"User id: 9, email: "[email protected]", created_at: "2020-02-14 13:53:14", updated_at: "2020-02-14 13:53:14", sash_id: nil, level: 0, name: nil, lastname: nil, avatar_file_name: nil, avatar_content_type: nil, avatar_file_size: nil, avatar_updated_at: nil, username: nil, facebook: nil, twitter: nil, country: nil, region: nil, city: nil, born_date: nil, website: nil, admin: nil"
User is created but information is nil, so when i go to my user panel i see avatar:nil error.
¿Why my devise is not loading the information?
Thanks for helping!
Upvotes: 0
Views: 83
Reputation: 1129
You should be allowing these attributes not on your application controller, but on your users controller like this.
class UsersController < ApplicationController
def create
user = User.create!(user_params)
session[:user_id] = user.id
redirect_to root_path
end
private
def user_params
params.require(:user).permit(:username,
:name,
:lastname,
:email,
:password,
:password_confirmation,
:avatar,
:country,
:region,
:city,
:born_date,
:facebook,
:twitter,
:website)
end
end
Upvotes: 1