Доступ к current_user из модели в Ruby on Rails
Мне нужно реализовать детальный контроль доступа в приложении Ruby on Rails. Разрешения для отдельных пользователей сохраняются в таблице базы данных, и я подумал, что было бы лучше позволить соответствующему ресурсу (т.е. экземпляру модели) решить, разрешено ли определенному пользователю выполнять чтение или запись в него. Принятие этого решения в контроллере каждый раз, конечно, не будет СУХОЙ.
Проблема в том, что для этого модели необходим доступ к текущему пользователю, чтобы вызвать что-то вроде<code>may_read</code>?(<code>current_user</code>, <code>attribute_name</code>)
, Тем не менее, в целом модели не имеют доступа к данным сеанса.
Есть несколько предложений по сохранению ссылки на текущего пользователя в текущей теме, например, вэтот блог, Это, безусловно, решит проблему.
Соседние результаты Google посоветовали мне сохранить ссылку на текущего пользователя в классе User, хотя, как мне кажется, он был придуман кем-то, чье приложение не должно одновременно обслуживать большое количество пользователей. ;)
Короче говоря, у меня возникает ощущение, что мое желание получить доступ к текущему пользователю (то есть данным сеанса) из модели исходит от меняделать неправильно.
Можете ли вы сказать мне, как я ошибаюсь?