2016-08-23 83 views
0
Rails 3.2 

我正在使用API​​ gem。客户想要的是将他想要的表格放在白名单中,以便将可用于访问该API的电子邮件地址列入白名单,并且只能通过phpmyadmin访问该表。从Rails应用程序访问外部表格

这将是一个表:

api_users 

独柱:电子邮件(除ID,created_at,的updated_at)

可能会包含在此表中的电子邮件地址,还存在在rails应用程序的用户表中。

如果我创建一个模型:型号/ api_user.rb:

class ApiUser< ActiveRecord::Base 
    attr_accessible :email 

而且,在我的模型/ 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

这听起来绝对可行。您可能要像

def readonly? 
    true 
end 

添加一些东西到ApiUser类,以确保没有人会尝试从Rails内部创建它的实例。但除此之外,我认为没有理由不这样做,以满足客户的要求。

+0

只读方法如何被调用? – EastsideDeveloper

+0

它确实被称为'readonly?',它将覆盖[现有方法](https://github.com/rails/rails/blob/46f511685c91486295a418547bb08c2aa5e49cfc/activerecord/lib/active_record/core.rb#L483)的ActiveRecord :: Core' –

相关问题