Dans mon application Rails, j'ai un modèle User (plus ou moins construit par l'authentification RESTful), et plusieurs autres modèles appartenant à l'utilisateur. Alors disons, par exemple:Accès aux objets de l'utilisateur dans différents états (Ruby on Rails, authentification RESTful)
utilisateur has_many: messages
poste belongs_to: utilisateur
Partout dans les utilisateurs des ressources que je peux accéder aux variables utilisateur que je me attends. @ user.name, @ user.email, @ user.login, etc. renvoient tous l'objet attendu.
Cependant, je ne peux pas sembler accéder à l'un de ces attributs à partir d'une autre ressource (dans cet exemple, les messages) sans renvoyer nil (nul plutôt que NoMethodError).
Pourquoi est-ce? Il me semble encore plus étrange que je puisse appeler current_user
très bien, comme dans current_user.name
, current_user.email
, mais pas pour l'utilisateur en question.
Merci pour la réponse. Disons que j'essaie d'accéder au nom de l'utilisateur à qui le post appartient à Posts/show. Le nom serait @ user.name dans la ressource Utilisateurs. Et pour show dans le contrôleur Posts actuellement: @post = Post.find (params [: id], @user). – btw
Si j'essayais d'accéder au nom de l'utilisateur qui a ajouté le post je voudrais (dans le PostsController) définir l'utilisateur: @post = Post.find (params [: id]), puis définissez l'utilisateur @user = @post .utilisateur. Puis dans la vue: Publié par <% = @ user.name%>. HTH –
C'est étrange, vous dites exactement ce à quoi je m'attendrais, mais le problème persiste. Je commence à me demander ce qui pourrait se passer sous le capot que je ne remarque pas. – btw