我可能遗漏了一些非常明显的东西,但我无法为我的一生弄清楚这...
我正在尝试对before_filter
我Orders_Controller
的current_user.vendor_id == params[:vendor_id]
. 它每次都返回 false ,将我重定向到,因为我在我的...root_path
中设置了它orders_controller
before_filter :check_vendor
.
.
.
private
def check_vendor
unless current_user.vendor_id == params[:vendor_id]
redirect_to root_path, :flash => { error: "Sorry, but you don't have sufficient privlidges to view that page" }
end
end
最奇怪的是当我使用用户登录并导航到
http://localhost:3000/vendors/3/orders/
并在我的索引中有这个代码:
<%= current_user.vendor_id %> <%= params[:vendor_id] %>
它在orders#index
视图中打印出来:
3 3
这应该意味着当我在控制器中使用相同的逻辑时,它会看到两个值都是“3”(或任何current_user.vendor_id
and params[:vendor_id]
)
任何帮助将不胜感激:) 对不起,如果这是一个明显的答案,我在 Rails 还是很新。