USER.RB文件无法正常工作 - 用户无法登录,管理员可以

时间:2017-03-29 13:06:00

标签: ruby-on-rails

class User < ActiveRecord::Base
  include Tenancy

  has_secure_password

  validates :username, presence: true, uniqueness: { case_sensitive: false }
  validates :full_name, presence: true, uniqueness: { case_sensitive: false }

  scope :chemists, -> { where(chemist: true) }
  scope :operators, -> { where(operator: true) }
  scope :inspectors, -> { where(inspector: true) }

  enum role_level: [ :user, :admin ]

  def self.names
    pluck(:full_name)
  end
end

用户个人资料无法登录应用。管理员个人资料仍然可以登录应用。

Tenant.rb

class Tenant
  PROPERTIES = { 
    'pi' => { name: "PI",
              time_zone: "Central Time (US & Canada)", 
              area_divisor: 144.0, 
              small_area_cutoff: 2304, 
              yield_multiplier: 1 },
    'pe' => { name: "PE",
              time_zone: "Beijing", 
              area_divisor: 1000000.0, 
              small_area_cutoff: 1500000.0, 
              yield_multiplier: 10.76 }

}

  attr_reader :code, :name, :time_zone, :area_divisor, :small_area_cutoff, :yield_multiplier

  def initialize(code)
    @code = code
    @name = PROPERTIES[code][:name]
    @time_zone = PROPERTIES[code][:time_zone]
    @area_divisor = PROPERTIES[code][:area_divisor]
    @small_area_cutoff = PROPERTIES[code][:small_area_cutoff]
    @yield_multiplier = PROPERTIES[code][:yield_multiplier]
  end

  def self.asset_classes
    [User, FilmMovement, SalesOrder, MasterFilm, Film, Machine]
  end

  asset_classes.each do |klass|
    name = klass.name.pluralize.underscore.downcase.to_sym
    define_method(name) do
      klass.tenant(code)
    end
  end

  asset_classes.each do |klass|
    name = "new_#{klass.name.underscore.downcase}".to_sym
    define_method(name) do |*args|
      klass.new(*args).tap do |o|
        o.tenant_code = code
      end
    end
  end
end 

编辑:添加tenant.rb 我还在学习Ruby on Rails。我刚刚接手了这个应用程序,用户配置文件的问题发生了,用户无法登录。

1 个答案:

答案 0 :(得分:1)

您在代码中使用了multenancy。因此,如果管理员租户在登录后设置正确,并且在简单使用的情况下,租户设置不正确。

查看您正在设置当前范围的租户模块。