Possible en double:
before_filter :require_ownercode require_owner pour limiter les actions du contrôleur ne reconnaît pas l'utilisateur actuel en tant que propriétaire
Je suis en train de restreindre l'accès à certaines actions en utilisant un before_filter qui semble assez facile. D'une certaine manière, ApplicationController ne reconnaît pas que current_user est le propriétaire de l'action d'édition de l'utilisateur. Lorsque je retire le filtre, le contrôleur route correctement l'utilisateur current_user vers ses informations d'affichage d'édition. Voici le code.
Lien appeler l'action d'édition du contrôleur de l'utilisateur (views/questions/index.html.erb
):
<%= link_to "Edit Profile", edit_user_path(:current) %>
ApplicationController (je signale que le code que je pense affecte cela, mais peut poster tout ça si nécessaire).
class ApplicationController < ActionController::Base
def require_owner
obj = instance_variable_get("@#{controller_name.singularize.camelize.underscore}") # LineItem becomes @line_item
return true if current_user_is_owner?(obj)
render_error_message("You must be the #{controller_name.singularize.camelize} owner to access this page", root_url)
return false
end
end
et before_filter
class UsersController < ApplicationController
before_filter :require_owner, :only => [:edit, :update, :destroy]
#...
end
je reçois simplement le rendu du message d'erreur de la ApplicationController action no de require_owner.
MISE À JOUR: le link_to fournit cette adresse: localhost: 3000/utilisateurs/actuels/modifier
Comment ressemble le lien 'edit_user_path (: current)'? – Eimantas
Bonne question. Comme ceci: http: // localhost: 3000/users/current/edit – bgadoci