从Rails应用程序访问外部表

时间:2016-08-23 22:25:04

标签: ruby-on-rails cancan

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

这会有用吗?

1 个答案:

答案 0 :(得分:1)

这听起来绝对可行。您可能想要添加类似

的内容
def readonly?
  true
end

ApiUser类以确保没有人会尝试从Rails中创建它的实例。但除此之外,根据客户的要求,我没有看到任何理由不这样做。