Я использую действует _как _арендатор гем для управления несколькими арендаторами -, и я использую devise для управления пользователями.
У меня есть только настройка модели пользователя и модели учетной записи для арендаторов. Я могу создавать пользователей для нескольких арендаторов -, все это работает нормально, ЗА ИСКЛЮЧЕНИЕМ, когда я пытаюсь создать двух пользователей с одинаковым адресом электронной почты с разными идентификаторами арендатора, я получаю ошибку уникальности. Я использую опцию клиента проверяет _уникальность _на _, как описано.
Пользовательская модель
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me
acts_as_tenant(:account)
validates_uniqueness_to_tenant :email
end
Модель учетной записи
class Account < ActiveRecord::Base
attr_accessible :name
end
Контроллер приложений
class ApplicationController < ActionController::Base
set_current_tenant_by_subdomain(:account, :subdomain)
protect_from_forgery
end
Похоже, что это должно работать на основе всей документации в актах _в качестве арендатора _. Нужно ли вместо этого переопределять что-то на уровне устройства?
РЕДАКТИРОВАТЬ :После некоторого царапания головы -и небольшого перерыва, проблема, как мне кажется, заключается в том, что по умолчанию Devise добавил уникальный индекс в столбец электронной почты. Это явно не стыкуется с тем, что _действует так, как хочет _арендатор... Я попробую удалить индекс и посмотреть, рвет ли Девиза или нет.
РЕДАКТИРОВАТЬ 2 :Хорошо, пока официально отказались от этого. У меня есть ручная проверка подлинности -для основного сайта, и она работает правильно с действиями _в качестве арендатора _. Я могу только предположить некоторую несовместимость между действиями _в качестве _арендатора и Изобретением на каком-то уровне -вне меня, чтобы найти его на данном этапе.