我想要一个像“must_have_permission_to_write”这样的前置过滤器,当用户无权写入时调用它会呈现一条消息,说“你不能这样做!” 并返回。
问题是我得到“每个动作只能渲染或重定向一次”当然......我怎样才能停止前过滤器中的执行?谢谢
我想要一个像“must_have_permission_to_write”这样的前置过滤器,当用户无权写入时调用它会呈现一条消息,说“你不能这样做!” 并返回。
问题是我得到“每个动作只能渲染或重定向一次”当然......我怎样才能停止前过滤器中的执行?谢谢
我认为最简单的答案是添加重定向并返回 false 到您的must_have_permission_to_write
方法。
def must_have_permission_to_write
unless current_user.has_permission?(something)
redirect_to access_denied_path
return false
end
end
然后,为某处拒绝访问创建一个操作,添加路由,然后在模板中放置您想要的任何内容。
我注意到这里的帖子有几点:
只需添加and return
,就像这样做:
before_filter :must_have_permission_to_write
def must_have_permission_to_write
redirect_to login_path and return unless current_user
end