ruby-on-rails-3 - 轨道与设计 : How to authenticate specific user?

标签 ruby-on-rails-3 authentication devise

我第一次将 Devise 与 Rails 结合使用,但遇到了一件事: 我在用户 Controller 中使用了提供的 authenticate_user! 方法来限制对页面的访问,如下所示: before_filter :authenticate_user!, :only => [:edit, :show, :update, :create, :destroy]

但这允许任何登录用户访问任何其他用户 :edit 操作,我想仅限于该用户。我该怎么做?

最佳答案

在您的编辑方法中,您需要检查用户是否拥有该记录:

def edit
   @record = Record.find(params[:id])
   if @record.user == current_user
      @record.update_attributes(params[:record])
   else
      redirect_to root_path
   end
end

关于ruby-on-rails-3 - 轨道与设计 : How to authenticate specific user?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6829672/

相关文章:

ruby-on-rails - Ruby:结构与初始化

ruby-on-rails - Rails - 用户在创建对象后按下 'Back',创建重复项

objective-c - 在 iOS 中验证 Dropbox

ios - 首次登录 Backendless 后保留用户

ruby-on-rails-3 - 在功能性 Rails 测试中为 authentication_user 抛出设计管理员错误

ruby-on-rails - 设计 - 如何更改设置以便电子邮件地址不需要是唯一的

ruby-on-rails - 设计要求用户接受服务条款?

ruby-on-rails - 通过 Rails 3 模板设置 RVM gemset

ruby-on-rails - 将嵌套数组转换为 JSON

security - 记录包括密码在内的身份验证尝试