Доступ к объектам пользователя в разных состояниях (Ruby on Rails, RESTful-аутентификация) - PullRequest
0 голосов
/ 16 апреля 2009

В моем приложении на Rails есть модель User (более или менее построенная с помощью RESTful Authentication) и несколько других моделей, принадлежащих пользователю. Так скажем, например:

пользователь has_many: сообщения

сообщение принадлежит: пользователю

В любом месте пользовательского ресурса я могу получить доступ к пользовательским переменным, как я и ожидал. @ user.name, @ user.email, @ user.login и т. д. все возвращают ожидаемый объект.

Однако я не могу получить доступ к любому из этих атрибутов из какого-либо другого ресурса (в этом примере, записей) без возврата nil (nil, а не NoMethodError).

Почему это? Мне кажется даже более странным, что я могу нормально вызывать current_user, как в current_user.name, current_user.email, но не для рассматриваемого пользователя.

1 Ответ

1 голос
/ 16 апреля 2009

Здесь есть два пользователя, о которых вы могли бы поговорить.
1) зарегистрированный в данный момент пользователь
2) пользователь, которому принадлежит пост

текущий зарегистрированный пользователь должен иметь возможность доступа через current_user. пользователь, которому принадлежит сообщение, должен быть установлен в контроллере сообщений:

@user = Users.find(@post.user_id)

или

@user = @post.user
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...