允许用户在网址中编辑没有:id参数的帐户

时间:2015-03-31 11:11:29

标签: ruby-on-rails

您好我想要一个具有

的网址
users/edit

而不是当前的

users/7/edit

我有自己的基于omniauth的auth系统。因此,我将他们的user_id存储在会话中。我将如何完成这项任务?

1 个答案:

答案 0 :(得分: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 "/users/edit" => "users#edit_user"
    
  3. 您已完成,您可以在应用程序的任何位置使用上述路线,您也可以根据需要命名路线。

    ,如果您不想定义新操作并希望使用现有的edit操作,请执行此操作

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

      resources :users, except: [:edit]
      get "/users/edit" => "users#edit"
      
    2. 希望这有帮助!