0
简单的问题。MVC中的好方法放置
将所有控制器相关的方法(但不能直接用于视图)放在帮助器中是否是一种好的做法?
我的意思是,我的控制器仅包含new
,create
,edit
等方法。里面这些方法通常有另一个叫类似的方法:
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
最近我读过的助手应该包括使用只考虑方法,所以我不太确定是否上述计数为方法,并因此,我的方法是否是一种不好的做法。
有人可以指点我认为这个好/坏做法的相关文件吗?
有一件事。从关注的内部将'helper_method:signed_in?'放到ApplicationController中,并将它放在'include Concerns :: Session'之后。在内部调用'helper_method'会导致'undefined method'错误。我编辑了你的答案,但需要同行评审。 – Kappa
@Kappa:谢谢,添加了你的建议编辑。 –