问题标签 [acts-as-tenant]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
344 浏览

ruby-on-rails - Rails 3 - 具有自定义租户 ID 列的acts_as_tenant

有没有人成功地将 Rails acts_as_tenantgem 用于多租户,其中未命名租户 ID 列xxx_id

我的模型类似于

然后我的查询select * from [table] where tenant_id = xxx忽略了被覆盖的foreign_key规范。

有没有什么办法解决这一问题?还是我在做其他明显错误的事情?

谢谢!!

0 投票
1 回答
205 浏览

ruby-on-rails-3 - 如何从 cancan 能力.rb 中引用acts_as_tenant current_tenant

我对 current_tenant 设置了一些总体权限 - 我可以从控制器中引用这些权限,即

工作正常。

我想用 CanCan 来结束它,如果我将以下内容放在我的能力.rb 中我会得到未定义的局部变量或方法 `current_tenant' for #

0 投票
2 回答
1511 浏览

ruby-on-rails-3.2 - 使用 rspec 测试acts_as_tenant

我有一个使用 ascts_as_tenant 的多租户应用程序。我正在尝试编写一个测试范围的规范。所以我想测试一下User.active的输出。

一般来说,这适用于以下代码

但是,我不知道如何让它使用acts_as_tenant 功能来使用current_tenant 并因此验证它只列出来自一个租户的活动用户。我确信这已经完成了,但我还没有找到任何关于它的文档。

因此,如何使用 rspec 测试acts_as_tenant 用户模型?

0 投票
1 回答
363 浏览

ruby-on-rails - 使用acts_as_tenant 的范围帐户模型?

acts_as_tenant在子域上使用键控,并希望“租户”能够更改他的帐户记录(更改他的子域),但看不到其他任何人的条目。

在Account中添加account_id列,id与Account.id相同,并制作account模型

有效,但感觉很恶心!此外,这意味着我不能使用 config.require_tenant = true 初始化程序,因为那时我正在尝试访问租户模型以设置当前租户,而租户尚未设置,这自然不会工作。

我确信我的做法完全错误,正确的解决方案将是显而易见的,但睡眠不足让我看不到光明。任何和所有的帮助表示赞赏!

0 投票
1 回答
295 浏览

ruby-on-rails - 如何确保子域范围内的 as_as_tenant 可以使用设计重置密码

我正在使用设计和acts_as_tenant gem,似乎设计控制器没有从ApplicationController(???)继承,所以无权访问set_current_tenant_by_subdomain

单击密码重置链接时,我没有按子域确定租户范围。

那么你如何处理呢?有没有一种简单的方法可以打开 DeviseControllers 以确保调用 set_current_tenant_by_subdomain ?

非常感谢

0 投票
1 回答
444 浏览

ruby-on-rails - 如何在使用acts_as_tenant gem 保存“租户”类之前建立关联记录?

例子...

我有一个班级client,这是我的tenant模特。
我有关联的记录与创建的每个新记录一起保存client。让我们打电话给他们tasks
我在其中创建了一个after_initialize回调,该回调client调用了一个名为的方法,该方法build_defaults执行以下操作...

task课程设置为acts_as_tenant :client

当我去做@client = new Client( :name => "Test Client" ) 它提出ActsAsTenant::Errors::NoTenantSet: ActsAsTenant::Errors::NoTenantSet

当它是一个新记录时,有没有办法有条件地绕过acts_as_tenant的检查?还是处理这类事情的更好方法?

几个月前我对rails / ruby​​还很陌生......?

更新

好吧,我想知道是否将其更改为“after_create”并ActsAsTenant.current_tenant = self在我可以self.tasks.create!调用的方法中设置...但不确定覆盖 ActsAsTenant.current_tenant 是否是个好主意?

0 投票
1 回答
183 浏览

ruby-on-rails-3 - 添加acts_as_tenant后用户无法登录

我正在使用 Clearance 进行身份验证,并使用acts_as_tenant 来设置租户

用户.rb

application_controller.rb

公司.rb

日志

每当我默认登录时,它都会使用 company_id=1 并且身份验证失败。我已经尝试了所有方法,但是当我在用户模型中注释掉 act_as_tenant(:company) 时,它工作正常,请帮助!

0 投票
1 回答
571 浏览

ruby-on-rails - 扩展 gem/engine 模型以包含来自主应用程序的acts_as_tenant

关于这个主题有一些帖子,但灯还没有打开。

我正在尝试扩展 rails gem/engine Plutus以使用acts_as_tenant

Plutus 为应用程序提供复式记帐系统。限制之一是该设计仅允许一个客户或一套书籍。我想要做的是使用acts_as_tenant 添加多租户,尽可能少地修改Plutus 引擎。目标不是用不同的分叉显着改变 Plutus,而是向 Plutus 添加一些可选方法或属性,这些方法或属性仅在您想要多个帐户时使用。

我让它处于半工作状态,但需要帮助来寻找放置东西的位置并帮助清理不工作的地方。精简的 Plutus 模型是:

然后账户上的 sti 类:资产、权益、费用、负债、收入和金额上的 sti 类:DebitAmount、CreditAmount。这有点超出了我的 Rails 知识范围,但这可能是我见过的最紧凑的复式记账方案之一(我不是会计师,但过去我不得不在应用程序上添加会计功能)。

半工作意味着我在 Plutus 中修改的唯一内容是tenant_id在三个模型中添加 a 并让acts_as_tenant 扩展三个模型中的两个。从主应用程序的控制台中,我发现:

适用于 Account 和 Transaction,但 Amount with 出现错误uninitialized constant Transaction,我不知道为什么。有任何想法吗?

我已经阅读了有关引擎的 Rails 指南并使用装饰器或关注点进行扩展,但还没有弄清楚如何acts_as_tenant(:tenant)使用这些方法发送到模型。我应该将这三行代码放在主应用程序中的什么位置(假设我知道如何让 Amount 工作!)?

有更好的方法吗?

我仍然有一些必须扩展或修改的类方法,但是在我克服第一个障碍之前尝试这样做是没有用的。

0 投票
1 回答
594 浏览

ruby-on-rails - 在控制器中使用 current_tenant 的 Rails 充当租户错误

我正在使用Acts_as_tenant. 医生说"adds a handy helper to your controllers current_tenant, containing the current tenant object"

但是,我想访问模型中的当前租户。该Tenant模型包含一列 -request_closed

我希望这有效:

我也试过:

但是,我得到:

有没有办法访问模型中的 current_tenant ?

谢谢您的帮助!

更新1

我认为这会起作用——它在开发中起作用,但在我的 Heroku 登台服务器上不起作用。

应用控制器:

请求控制器:

???

0 投票
1 回答
514 浏览

ruby-on-rails - 多租户 Rails 应用程序用户帐户关系问题

我的应用程序主要宝石:rails 4.1.1pgacts_as_tenant和.deviseactiveadmin

应用程序描述:带有子域的 saas 多租户应用程序(不使用 postgresql 模式)。
我有 2 个模型:AccountUser带有:

  • accountbelongs_to :owner用户的 class_name
  • 用户belongs_to :accountacts_as_tenant(:account)

注意:如果使用acts_as_tenant,我不确定是否需要声明belongs_to?

在公共域 (www.myapp.dev) 上,用户可以创建一个新帐户并选择自己的子域。此用户具有此特定子域/帐户的“所有者”状态。创建帐户后,用户将被重定向到自定义子域进行登录。登录后,所有者可以创建/邀请其他用户加入他的帐户。

创建帐户时,owner_id 正确保存到帐户记录。在 ActiveAdmin 中,我可以按所有者过滤我的帐户。

问题是 account_id 没有保存在用户记录中。同样在 ActiveAdmin 中,当我尝试编辑用户记录以添加帐户时,数据没有保存......</p>

我正在学习 Rails,所以请放轻松:)

我的帐户模型:

我的用户模型:

应用控制器:

账户控制人:

用户控制器:

我的数据库架构: