使用Devise身份验证将用户信息添加到配置文件

时间:2017-08-14 12:44:07

标签: ruby-on-rails ruby devise

我正确设置了Devise身份验证,并且我正在尝试添加用户个人资料页面(目前正在使用users#show)。

我希望用户能够获得地址等信息。

我是否必须为此创建模型,因为我希望用户使用它进行CRUD?

以下是我现在所拥有的: show.html.erb

<%= content_for :title, "#{current_user.prenom} #{current_user.nom} - profil" %>

<%= render partial: 'layouts/jsnav' %>

<%= render partial: 'users/header' %>

<div class="tab">
  <button class="tablinks" onclick="openCity(event, 'infos')">Mes informations</button>
  <button class="tablinks" onclick="openCity(event, 'adresses')">Mes adresses</button>
  <button class="tablinks" onclick="openCity(event, 'commandes')">Mes commandes</button>
  <button class="tablinks" onclick="openCity(event, 'avis')">Mes avis</button>
  <button class="tablinks" onclick="openCity(event, 'fidelite')">Espace fidélité</button>
  <button class="tablinks" onclick="openCity(event, 'parrainage')">Parrainage</button>
</div>

<div id="infos" class="tabcontent">
  <%= render partial: 'users/informations' %>
</div>

<div id="adresses" class="tabcontent">
  <%= render partial: 'users/adresses' %>
</div>

<div id="commandes" class="tabcontent">
  <%= render partial: 'users/commandes' %>
</div>

<div id="avis" class="tabcontent">
  <%= render partial: 'users/avis' %>
</div>

<div id="fidelite" class="tabcontent">
  <%= render partial: 'users/fidelite' %>
</div>

<div id="parrainage" class="tabcontent">
  <%= render partial: 'users/parrainage' %>
</div>

users_controller.rb

class UsersController < ApplicationController
  include Devise::Controllers::Helpers
  before_filter :authenticate_user!

  def show
    @user = User.find(params[:id])
    @user_adresse = current_user.adresse
  end

  def edit
    @user = User.find(params[:id])
  end

  def update
    @user = User.find(params[:id])
    @user.assign_attributes(user_params)

    if @user.save
      flash[:notice] = "Votre profil a été modifié"
    else
      flash[:alert] = "Une erreur est survenue lors de la modification de votre profil"
    end
  end

  private

  def user_params
    params.require(:user).permit!
  end

end

以下是部分users/adresses

的内容
<section id="user-add-adresse-container">
  <% if @current_user.adresse %>
    <%= current_user.adresse %>
  <% end %>

  <%= form_for @user, url: edit_user_path(@user), method: :get do |f| %>
    <div class="field" id="adresse-field">
      <%= f.label :adresse %>
      <%= f.text_field :adresse, placeholder: 'Saisissez votre adresse' %>
    </div>
    <div class="field" id="adresse-field">
      <%= f.label :code_postal %>
      <%= f.text_field :code_postal, placeholder: 'Saisissez votre code postal' %>
    </div>
    <div class="field" id="adresse-field">
      <%= f.label :ville %>
      <%= f.text_field :ville, placeholder: 'Saisissez votre ville' %>
    </div>
    <div class="field" id="adresse-field">
      <%= f.label :pays %>
      <%= f.select :pays, User::CHOIX_PAYS, placeholder: 'Sélectionnez votre pays' %>
    </div>
    <div class="submit" id="user-add-adresse-submit">
      <%= f.submit "Ajouter l'adresse" %>
    </div>
  <% end %>
</section>

这不起作用。这里有一些我想念的东西。

0 个答案:

没有答案
相关问题