【问题标题】:Accessing an external table from a Rails application从 Rails 应用程序访问外部表
【发布时间】:2016-08-23 22:25:03
【问题描述】:
Rails 3.2

我正在使用 API gem。客户想要的是将他想要将可用于访问 API 的电子邮件地址列入白名单的表保留在一个单独的表中,他只能通过 phpmyadmin 访问。

这将是一个表:

api_users

单列:email(除了id、created_at、updated_at)

该表中的电子邮件地址也存在于 rails 应用程序的用户表中。

如果我创建一个模型:models/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

这行得通吗?

【问题讨论】:

    标签: ruby-on-rails cancan


    【解决方案1】:

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

    def readonly?
      true
    end
    

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

    【讨论】:

    • 它确实会被称为readonly?,它将覆盖来自ActiveRecord::Coreexisting method
    猜你喜欢
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 2013-05-25
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多