2013-02-20 25 views
0

我已经按照修订后的Railscast从头开始进行用户认证。如何从零开始更新用户配置文件到用户认证

我想知道我可以在部分添加了用户修改个人资料,因为我有他们需要的性别,种族,职业,我,孩子,身高等注册后进入其他领域等

有没有一个教程,告诉你如何做到这一点,或有人可以帮助指向正确的方向吗?

我的项目文件可以在https://github.com/pwz2k/date

UPDATE

我已经开始工作就可以了,不知道我这样做的权利进行查看。我希望用户能够修改他们的账户设置(注册时使用的字段)。

下面是我在/ 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。

+0

修订的railscasts不可公开访问,所以向我们展示一些代码。在此基础上,我们可以提出一些建议 – CuriousMind 2013-02-20 17:17:52

+0

我已经添加了github链接来显示所有文件。这应该有助于https://github.com/pwz2k/date – 2013-02-20 17:24:47

回答

1

只是几个一般的指针。

在Railscasts中,users_controllernewcreate动作正在创建中。你想编辑一个用户,所以你可以构建出这个控制器的editupdate动作。

# 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 

在你的路线,你可以弄清楚如何路由resource :profile单一资源(Rails guides)映射到相应的操作。

+0

谢谢我已经用我迄今为止所做的工作更新了我的帖子。我不确定我会朝着正确的方向前进。 – 2013-02-22 15:07:29