我认为这是:
<% if user_signed_in? && current_user.has_role? :admin or :editor %>
返回此错误:
syntax error, unexpected tSYMBEG, expecting keyword_then or ';' or '\n'
我也试过这个:
<% if user_signed_in? and current_user.has_role? :admin or :editor %>
虽然我没有得到上述错误,但它根本不起作用......即。 non-signed-in-user
可以访问if
块中的内容。
答案 0 :(得分:1)
我不认为has_role?
可以使用多个参数。正确的方法是:
<% if user_signed_in? && (current_user.has_role? :admin or current_user.has_role? :editor) %>
答案 1 :(得分:1)
我找到了更加惯用的写法,即使用[has_any_role?][1]
:
<% if user_signed_in? and current_user.has_any_role? :admin, :editor %>
答案 2 :(得分:0)
你可以这样试试:
<% if user_signed_in? && [:admin, :editor].include?(current_user.role) %>