Rails 3.2
我正在使用API gem。客户想要的是将表保存在他希望将用于访问API的电子邮件地址列入白名单的位置,在单独的表中,他只能通过phpmyadmin访问。
这将是一张表:
api_users
使用单列:电子邮件(除了id,created_at,updated_at)
此表中的电子邮件地址也存在于rails应用程序的users表中。
如果我创建模型:models / api_user.rb:
class ApiUser< ActiveRecord::Base
attr_accessible :email
而且,在我的models / api_ability.rb中,我添加了以下内容:
class ApiAbility
include CanCan::Ability
def initialize(user, params = {})
user ||= User.new
if ApiUser.find_by_email(user.email)
can :manage, :api
end
end
end
这会有用吗?
答案 0 :(得分:1)
这听起来绝对可行。您可能想要添加类似
的内容def readonly?
true
end
到ApiUser
类以确保没有人会尝试从Rails中创建它的实例。但除此之外,根据客户的要求,我没有看到任何理由不这样做。