如何从头开始将用户配置文件更新为用户身份验证

时间:2013-02-20 17:15:14

标签: ruby-on-rails

我已经从头开始遵循修订后的Railscast进行用户身份验证。

我想知道如何添加部分供用户修改个人资料,因为我在注册后需要输入其他字段,如性别,种族,职业,关于我,孩子,身高等。

是否有教程向您展示如何执行此操作,或者有人可以帮我指出正确的方向吗?

我可以在https://github.com/pwz2k/date

查看我的项目文件

更新

我已经开始研究它,不确定我是否做得对。我希望用户能够修改他们的帐户设置(注册时使用的字段)。

以下是/ users文件夹中的edit.html。

<h1>Account Information</h1>

<%= form_for @user do |f| %>
  <% if @user.errors.any? %>
    <div class="error_messages">
      <h2>Form is invalid</h2>
      <ul>
        <% @user.errors.full_messages.each do |message| %>
          <li><%= message %></li>
        <% end %>
      </ul>
    </div>
  <% end %>

    <div class="field">
        <%= f.label :email %><br/>
        <%= f.text_field :email %>
    </div>
    <div class="field">
        <%= f.label :password %><br/>
        <%= f.password_field :password %>
    </div>
    <div class="field">
        <%= f.label :password_confirmation %><br/>
        <%= f.password_field :password_confirmation %>
    </div>
    <div class="field">
        <%= f.label :username %><br/>
        <%= f.text_field :username %>
    </div>
    <div class="field">
        <%= f.label :zip_code %><br/>
        <%= f.text_field :zip_code %>
    </div>
    <div class="field">
        <%= f.label :birthday %><br/>
        <%= f.text_field :birthday %>
    </div>  
    <div class="actions"><%= f.submit %></div>
<% end %>

这是我的路线:

Dating::Application.routes.draw do
  get 'signup' => 'users#new'
  get 'login' => 'sessions#new'
  get 'logout' => 'sessions#destroy'
  get 'edit' => 'edit#edit'

  resources :users
  resources :sessions
  resources :password_resets

  root to: 'users#new'

以下是我添加到users_controller的内容,我不确定我做得不好:

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

  def update
    @user = User.find(params[:user])
    if @user.update_attributes(params[:user])
      flash[:success] = "Account updated"
      sign_in @user
      redirect_to @user
    else
      render 'edit'
  end

我最终如何使一切正常工作用户将进入/编辑以修改他们的帐户设置以及他们在注册期间填写的所有私人信息。然后,用户可以直接在他们的个人资料页面上编辑个人资料信息(性别,种族,职业,关于我等)(将使用就地编辑)。所以我只需要知道我所采取的步骤是否正确(我还没有使用过终端),如果是这样的话,如何显示编辑页面,因为它显示了路由错误atm。

1 个答案:

答案 0 :(得分:1)

只是一些一般性的指示。

在Railscast中,正在创建users_controller的{​​{1}}和new个操作。您想要修改用户,因此您可以构建此控制器的createedit操作。

update

在您的路线中,您可以弄清楚如何路由# app/controllers/users_controller.rb class UsersController < ... def new # exists end def create # exists end def edit # load the current_user; make sure a user can only edit his record! end def update # save edit for the current_user, same security as above end end 单数资源(Rails guides)以映射到相应的操作。