Size: a a a

2020 August 25

А

Антон in RubyRush
Эдем
Тогда в чём вопрос? Такого кода в хелпере не должно быть
а вот тут непонятно
почему не должно? и можно ли как-то иначе реализовать через хелперы подобные редирект?
источник

VV

Vadim Venediktov in RubyRush
Антон
это да, понимаю
и то что последняя версия рельс так работает, что я могу сколько угодно файлов с хелперами создавать - они всё равно будут собраны в общую кучу и оттуда браться по необходимости
и не только последняя версия рельс так работает, насколько мне известно
источник

DM

Dmitriy Tensei Malys... in RubyRush
зачем кучу хелпер методов городить когда можно все в 1 экшене сделать
источник

DM

Dmitriy Tensei Malys... in RubyRush
def logged_in?
   !current_user.nil?
end
источник

DM

Dmitriy Tensei Malys... in RubyRush
типа таких
источник

DM

Dmitriy Tensei Malys... in RubyRush
user = User.some_auth_method

if user
 redirect to some_page
else
redirect_to login_page
источник

А

Антон in RubyRush
чтобы потом в других местах программы использовать тот или другой метод
смотря какой понадобится
источник

DM

Dmitriy Tensei Malys... in RubyRush
чет пока неясно что кроме current_user может понадобится
источник

DM

Dmitriy Tensei Malys... in RubyRush
да и тот лучше вынести в application _controller
источник

А

Антон in RubyRush
Эдем
Ну и там лишнее условие if session[:user_id]
так а если это условие удалить, тогда разве не будет исключение срабатывать, если session[:user_id] будет nil? а условие как раз при ниле не даёт программе падать
источник

Э

Эдем in RubyRush
find_by и не будет иксепшена
источник

А

Антон in RubyRush
о как, не знал, благодарствую
источник

А

Антон in RubyRush
Dmitriy Tensei Malyshev
чет пока неясно что кроме current_user может понадобится
например юзер заходит на страничку какого-то юзера, тут надо прочекать, его ли эта страница, чтобы выдать возможности редактирования - метод current_user?
logged_in? - чтобы не пускать не залогинившихся юзеров дальше страницы приветствия
log_in - просто потому что один и тот же код в 2 контроллерах используется - при создании сессии и при регистрации юзера
log_out - то же самое, только при удалении сессии и сымовыпиле юзера
redirect_back_unless_logged_in - этот красавец, который не работает, чтобы не пускать залогинившихся юзеров на страницы, прездназначенные незалогинившимся
источник

А

Антон in RubyRush
так что всё спланировано заранее
источник

А

Антон in RubyRush
Эдем
Тогда в чём вопрос? Такого кода в хелпере не должно быть
я просто продублирую вопрос, ибо он далеко ушёл
почему в хелпере не должно быть редиректа? это как-то рельсами не может быть обработано?
источник

Э

Эдем in RubyRush
Там, вообще, не должно быть ни одного из этих методов. Почему? Вадик же написал
источник

DM

Dmitriy Tensei Malys... in RubyRush
Антон
например юзер заходит на страничку какого-то юзера, тут надо прочекать, его ли эта страница, чтобы выдать возможности редактирования - метод current_user?
logged_in? - чтобы не пускать не залогинившихся юзеров дальше страницы приветствия
log_in - просто потому что один и тот же код в 2 контроллерах используется - при создании сессии и при регистрации юзера
log_out - то же самое, только при удалении сессии и сымовыпиле юзера
redirect_back_unless_logged_in - этот красавец, который не работает, чтобы не пускать залогинившихся юзеров на страницы, прездназначенные незалогинившимся
logged_in - вместо этого юзать current_user.present?
log_in - для этого нужен экшен отдельный
log_out - экшен destroy
redirect_back_unless_login - это тоже лишнее это делается в application_controller 1 методом, типа before_action :authorize_user и типа пока юзера нету редирект
источник

DM

Dmitriy Tensei Malys... in RubyRush
!current_user.nil? так вообще лучше не писать
источник

D

Dmitriy Y. in RubyRush
Антон
я просто продублирую вопрос, ибо он далеко ушёл
почему в хелпере не должно быть редиректа? это как-то рельсами не может быть обработано?
Вам же написали что "да и тот лучше вынести в application _controller" ©
источник

DM

Dmitriy Tensei Malys... in RubyRush
ну и вообще это все выносится в application_controller через helper_methods
источник