2015-03-31 44 views
1

嗨ID PARAM我想完成具有的当前允许用户无需编辑帐户:url中

users/7/edit 

我有我自己的权威性

users/edit 

,而不是一个网址系统建立在omniauth之上。因此我将他们的user_id存储在一个会话中。我将如何去完成这项任务?

回答

3

假设你使用current_user,即使你使用的是别的东西只是你的方法代替current_user,我使用current_user这里,请按照下列步骤操作,

  1. 创建一个动作,我想它命名为edit_user在您的用户控制器

    def edit_user 
        @user = current_user # or User.find(session[:user_id]) 
    end 
    
  2. 添加路由routes.rb

    get "https://stackoverflow.com/users/edit" => "users#edit_user" 
    

你完成了,你可以在应用程序的任何地方使用上述路线,如果需要的话也可以命名路线。

OR,如果你不希望定义一个新的行动,并希望使用现有的edit动作,做这个

  1. 从默认resources路线edit删除路由,然后手动定义它。通过这种方式,您可以使用现有的edit行动

    resources :users, except: [:edit] 
    get "https://stackoverflow.com/users/edit" => "users#edit" 
    

希望这有助于!