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