我想要一个像“must_have_permission_to_write”这样的前过滤器,如果用户没有写入权限,则在调用时会显示一条消息“你不能这样做!”并返回。
我遇到的问题是“每次行动只能渲染或重定向一次”当然...... 如何在过滤器中停止执行? 感谢
答案 0 :(得分:3)
我认为最简单的答案是添加重定向并向您的must_have_permission_to_write
方法返回false。
def must_have_permission_to_write
unless current_user.has_permission?(something)
redirect_to access_denied_path
return false
end
end
然后,在某处创建一个拒绝访问的操作,添加路径,并在模板中放置您想要的任何内容。
答案 1 :(得分:0)
我注意到这里有一些关于帖子的事情:
答案 2 :(得分:-1)
只需添加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