Ruby on Rails - 在app中添加第二个(极其)简单的Auth层

时间:2012-02-08 22:01:06

标签: ruby-on-rails ruby-on-rails-3 activerecord

用户登录其帐户后,会显示“员工”列表。

截至目前,当您点击一名员工时,它会将用户带到该特定员工的“显示”页面,但是我想在呈现该页面之前向该列表添加一个“图钉保护”方面

我想添加一个简单的身份验证层,如下所示:

  1. 当用户在列表中单击其名称时,会出现一个文本字段,询问所选员工的图钉。

  2. 用户输入引脚。提交时,它会将输入的引脚与该员工记录的“引脚”列进行比较。如果它是正确的,它将授予访问所选员工的显示页面的权限。

  3. 这是在RoR中轻松完成的吗?这是我工作的第一个真正的应用程序,所以我无法围绕这样的几个概念进行思考。

    非常感谢!

1 个答案:

答案 0 :(得分:0)

看看devise,它绝对是Ruby on Rails 3身份验证层的最佳选择。


如果您只是想为现有的模型类添加一些功能,那么最好的选择是添加一个方法:

def validate_pin(pin_to_check)
    self.pin == pin_to_check
end

然后您只需修改您的员工控制器,以便show方法检查是否已提供引脚(理想情况下通过会话变量),否则重定向并请求引脚使用其他方法和路由控制器中Employee#request_pin,要求用户输入引脚,成功重定向到Employee#show路径。

控制器中的会话处理

要编写会话变量,您需要Employee#check_pin方法(作为POST路由),并且您只需使用代码:

session[:pin_valid] = true

然后,您需要检查session[:pin_valid]方法

中的Employee#show