我有一个普遍的问题......
我使用Michael Hartl的教程示例构建了我的用户模型。我遇到麻烦的是改变网址以及其他用户的信息。我正在使用从id - >更改的Friendly_id;名称,但如果我将顶部的名称更改为另一个用户,它将显示其主页。我想限制我的用户无法做到这一点。
如果没有Devise或CanCan的实施,这可能吗?尝试抛出一个验证,检查用户是否尝试更改URL栏上的名称,即检查该名称是否是当前登录的用户,如果没有,则重定向回当前用户。
如果您需要型号信息,请告知我们。
TIA
答案 0 :(得分:2)
您可以在before_filter
上放置UsersController
验证此方案,如下所示:
# Each time you make an action on your UsersController this filter will run
before_filter :validate_url_hack
def validate_url_hack
# Check the params hash to see if the passed :id matches the current user's id
# (note the .to_i on params[:id], as you are comparing against a Fixnum)
unless params[:id].to_i == current_user.id
# This line redirects the user to the previous action
redirect_to request.referer
end
end
这只是猜测,但我相信这样的事情应该有用。
答案 1 :(得分:2)
您要限制为特定用户的所有模型应与您的用户模型具有belongs_to关联,以便在您的控制器中执行
current_user.cars
并且您永远不应该在URL中传递用户ID。这可以说明你正在使用设计。