Внутри моего контроллера у меня есть следующее:
before_filter :authenticated?, :only => [:edit]
def authenticated?
if current_user != User.find(params[:id])
flash[:alert] = 'Log in!'
redirect_to login_path :status => 401
end
end
Теперь, когда я вошел в систему и ушел, чтобы отредактировать пользователя, все работает, но когда я ушел, чтобы отредактировать пользователя, я не смог бы получить следующее:
No route matches {:action=>"new", :controller=>"sessions", :status=>401}
Почему это? Для справки я включил свои рейк-маршруты ниже.
users GET /users(.:format) {:action=>"index", :controller=>"users"}
POST /users(.:format) {:action=>"create", :controller=>"users"}
new_user GET /users/new(.:format) {:action=>"new", :controller=>"users"}
edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"}
user GET /users/:id(.:format) {:action=>"show", :controller=>"users"}
PUT /users/:id(.:format) {:action=>"update", :controller=>"users"}
DELETE /users/:id(.:format) {:action=>"destroy", :controller=>"users"}
sessions POST /sessions(.:format) {:action=>"create", :controller=>"sessions"}
new_session GET/sessions/new(.:format) {:action=>"new", :controller=>"sessions"}
session DELETE /sessions/:id(.:format) {:action=>"destroy", :controller=>"sessions"}
root / {:controller=>"pages", :action=>"home"}
contact /contact(.:format) {:controller=>"pages", :action=>"contact"}
about /about(.:format) {:controller=>"pages", :action=>"about"}
help /help(.:format) {:controller=>"pages", :action=>"help"}
signup /signup(.:format) {:controller=>"users", :action=>"new"}
/signup(.:format) {:controller=>"users", :action=>"new"}
signout /signout(.:format) {:controller=>"sessions", :action=>"destroy"}
signin /signin(.:format) {:controller=>"sessions", :action=>"new"}