LINUX.ORG.RU

[rails] Доступ к current_user в модели.


0

1

Глобальные переменные в моделях не работают. Тут подробное описание проблемы и даже решения. http://clearcove.ca/blog/2008/08/recipe-make-request-environment-available-to...

Однако, решение не является threadsafe. И именно это мешает использовать подход даже на стандартном интерпретаторе ruby 1.9.2p0 - отваливается как минимум через раз.

Просмотрел десяток топиков на stackoverflow.com - большая часть заточена под плагины авторизации вроде device. У меня же стандартная restful auth и менять её нежелательно.

belongs_to :user

  scope :by_own, lambda { where(:user_id => @user_id, :status => "ok") }

  validates_uniqueness_of	:email, :scope => by_own, :message => "Message to this email already delivered"

Как видно, мне нужно знать @user_id.


Ты хочешь странного. Не нужно в модели писать такую логику, что они требует доступа к кукам и тому подобному. Пиши логику в контроллере, не морочь голову. И да, нормальные люди пишут такую логику в сервисах, но рельсы кактус и в них нету сервисов. Поэтому нормальные люди не используют рельсы.

dizza ★★★★★
()
Ответ на: комментарий от dizza

Ты прямо как разработчик этих ральсов. То же самое говоришь. Но вот надо мне при проверке записи проверять записи именно для текущего юзера. Вроде, ничего глупого или нелогичного. А вот нельзя. Валидаторы рассчитаны только на ввод, что довольно странно.

Есть тут пара мыслей, но сейчас занят другим. Может надётся у кого решение получше.

daris
() автор топика
Ответ на: комментарий от dizza

Эм... я его в топике описал. Валится и костыль.

daris
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.