我从头开始遵循修改后的 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
我最终将如何让一切正常工作是用户将转到 /edit 以使用注册期间填写的所有私人信息修改他们的帐户设置。然后用户可以直接在他们的个人资料页面上编辑个人资料信息(性别、种族、职业、关于我等)(将使用就地编辑)。所以我只需要知道我采取的步骤是否正确(我还没有使用终端),如果是,我如何让编辑页面显示,因为它显示路由错误 atm。