简体   繁体   中英

Rails 3 devise user registration edit path not working

I have a pretty straight forward app with a couple tweaks to Devise.

First I created a Registrations controller that class RegistrationsController < Devise::RegistrationsController inherits from Devise. I created this controller so that I could edit users without re-supplying passwords. https://gist.github.com/1514687

I also did this in my routes:

devise_for :users, :controllers => { :registrations => "registrations" }`

The signup works fine but when I call the following:

<p class="edit"><%= link_to "Edit", edit_user_registration_path(user) %></p>

The url it spits out is (running on localhost): http://localhost:3000/users/edit.2

Any ideas here?

I recommend a non-devise controller for doing this, and name it something other that "users" for the sake of not overlapping with devise routes

some key nomenclature:

rails g controller accounts
resources :accounts

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

(other controller actions similar, just refer to @user and don't worry about that this happens to be called the accounts controller)

In your routes.rb file make sure that you have

resources :users

after your devise_for line like below:

devise_for :users, :controllers => { :registrations => "registrations" }
resources :users

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM