Juick
Discuss
Discover
Login
rb
1 decade ago
жизнь
Rails
работа
программирование
День №4. Патчил ActiveRecord::Base, чтобы он в каждой модели заполнял поле user_id (если оно есть) информацией из AuthLogic (id авторизованного пользователя).
Recommend
rb
1 decade ago
сам код патча разместил в app/config/initializers
/1 ·
Reply
wyldrodney
1 decade ago
Почему костыли? Интересно на что такое наткнулись что пришлось так делать.
/2 ·
Reply
rb
1 decade ago
@wyldrodney
, 100-моделей, где в каждой user_id. Задолбались каждый раз в контролерах писать .merge(:user => current_user)
/3 in reply to
/2
·
Reply
wyldrodney
1 decade ago
@rb
, Гм.. ясно.
/4 in reply to
/3
·
Reply
kaineer
1 decade ago
@rb
, почему не сделать модуль и не инклудить повсеместно?
/5 in reply to
/3
·
Reply
rb
1 decade ago
@kaineer
, этот вопрос тоже обсуждался, но число моделей будет расти и можно забыть его заиклудить.... к тому же, нарушается принцип DRY.
/6 in reply to
/5
·
Reply
kaineer
1 decade ago
@rb
, Где это он нарушается? А на предмет — забыть проинклудить можно проверку гонять, чтобы искала строчку в моделях.
/7 in reply to
/6
·
Reply
rb
1 decade ago
@kaineer
, мы фактически должны сделать copy-paste во всех контролерах. Почему бы не добавлять это код автоматом во все модели?
/8 in reply to
/7
·
Reply
rb
1 decade ago
@rb
, *моделях
/9 in reply to
/8
·
Reply
kaineer
1 decade ago
@rb
, А нельзя в том же инициализаторе просто найти все модели проекта и каждому проинклудить модуль?
/10 in reply to
/8
·
Reply
kaineer
1 decade ago
А ещё, кто мешает сделать вот так:
gist.github.com
/11 ·
Reply