Ruby on rails USER.RB文件不工作-用户无法登录,管理员可以

Ruby on rails USER.RB文件不工作-用户无法登录,管理员可以,ruby-on-rails,Ruby On Rails,} 已编辑:添加租户.rb 我还在学习RubyonRails。我刚刚接手这个应用程序,用户配置文件出现问题,用户无法登录 您正在代码中使用多租户。所以,似乎在管理员的情况下,租户在登录后设置正确,而在简单使用的情况下,租户设置不正确 查看正在设置当前范围的租户模块。是否有任何错误?提供更多详细信息或日志,以便我们提供帮助 class User < ActiveRecord::Base include Tenancy has_secure_password validates

}

已编辑:添加租户.rb
我还在学习RubyonRails。我刚刚接手这个应用程序,用户配置文件出现问题,用户无法登录

您正在代码中使用多租户。所以,似乎在管理员的情况下,租户在登录后设置正确,而在简单使用的情况下,租户设置不正确


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

是否有任何错误?提供更多详细信息或日志,以便我们提供帮助
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
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