ruby on rails - Good method placement in MVC -
simple question.
is practice place controller related methods (but not directly used in view) in helper?
what mean, controllers consist of new, create, edit, etc. methods only. inside these methods there typically methods called like:
class sessionscontroller < applicationcontroller include sessionshelper ... def destroy sign_out if signed_in? redirect_to root_path end end module sessionshelper def signed_in? !current_user.nil? end def forget(user) user.forget cookies.delete(:user_id) cookies.delete(:remember_token) end def sign_out forget(current_user) session.delete(:user_id) @current_user = nil end end lately i've read helper should consist of methods used only in view, not quite sure whether methods above count that, , therefore whether placement of method bad practice.
could point me relevant documentation considers good/bad practice?
that's controller concerns for. is, basically, regular ruby module, without added meanings of rails helpers.
# app/controllers/concerns/session.rb module concerns module session extend activesupport::concern def signed_in? !current_user.nil? end def forget(user) user.forget cookies.delete(:user_id) cookies.delete(:remember_token) end def sign_out forget(current_user) session.delete(:user_id) @current_user = nil end end end class sessionscontroller < applicationcontroller include concerns::session helper_method :signed_in? # make available in views def destroy sign_out if signed_in? redirect_to root_path end end
Comments
Post a Comment