例如,我有defs:def index
,def manage
,def new
。在路线我有下一个:
if user_signed_in?
def new
end
end
但是当我写它时,其他def(索引和管理)也要求我登录。我怎么能这样做只是新的def要求我登录?
路线:
get "/new" => "posts#new"
答案 0 :(得分:2)
尝试将此行添加到控制器
before_filter :authenticate_user!, only: [:new]
答案 1 :(得分:0)
如果您确实使用Devise,请完整浏览指南。The filters是您错过的。
before_filter :authenticate_user!
是要走的路。
你在问题中所做的是根据用户是否登录的布尔值有条件地定义控制器的动作,这实际上是一种错误的方法。此外,在控制器类的定义方面,没有用户。