2016-08-23 84 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' –

相關問題