只有正确的用户才能访问Rails用户个人资料页面
我正在使用设计进行身份validation。 现在,我正在设置用户个人资料。 我已经设置了所有内容,除了每个页面都可供所有人访问(因此您可以在不登录的情况下查看配置文件)。 如何制作它以便只有正确的用户才能看到自己的个人资料页面?
users_controller.rb
class UsersController < ApplicationController def show @user = User.find(params[:id]) end end
的routes.rb
devise_for :users resources :users, only: [:show] get 'users/show'
显示视图……
Users#show
Find me in app/views/users/show.html.erb
这个应该有助于检测current_user是否正确。
class UsersController < ApplicationController before_action :check_user private def check_user if current_user != @user redirect_to root_url, alert: "Sorry, This Profile belongs to someone else !" end end end
在用户和配置文件之间创建has_one belongs_to关系。 在控制器中,您可以包含一些仅显示当前用户配置文件的逻辑。
Pundit是一个很好的gem,有助于授权 – https://github.com/elabs/pundit
- 如何解决“无法批量分配受保护的属性:translations_attributes”错误?
- 加载后显示ruby文件的完整路径名
- RMagick安装错误
- 脚本在命令行中成功执行,但不是作为cronjob执行
- rvm install ruby-1.9.3-p286:运行’make -j 9’时出错(OSX:Mountain Lion)
- 项目Euler 1:找到1000或以下3或5的所有倍数的总和
- 联系表格,ruby,sinatra和haml
- 在Ruby中使用Marshal :: dump进行对象序列化时如何写入文件
- Rails 3 – nil的未定义方法`map’:NilClass用于我自己的validation