0

我正在编写一个 RoR 应用程序。我想允许我的多个客户将其用作基于云的应用程序。我不想为每个客户复制代码。

我假设这意味着为我的每个客户使用一个子域,并为客户提供一个表。客户表将有一个域字段。

换句话说——我希望每个客户只看到他们的记录。

我的问题是:

  • 有人记录了如何在 Rails 中执行此操作吗?它在哪里?

  • 每个表都必须有一个 customer_id 吗?或者,如果您有一个带有 Customer_id 的项目表,然后有该项目的任务,那么您就不需要任务记录中的 customer_id - 对吧?

  • 您是否必须从客户开始每个视图。??

任何想法都会有所帮助!谢谢!

4

3 回答 3

1

这里有一个关于在 Rails 3 中处理子域的 railscast:http ://railscasts.com/episodes/221-subdomains-in-rails-3

关于第 2 点,您只需要customer_idon Project,您也不需要 on Task

我不确定您从 Customer. 开始每个视图是什么意思,但我猜不是。也许通过 railscast 会在这里回答你的问题。

于 2013-01-06T06:42:08.257 回答
1

您还需要考虑授权,即当前用户是否有权查看/更新这些记录?为此,我个人推荐使用 cancan gem https://github.com/ryanb/cancan,您可以在应用程序中定义一个包含用户所有权限的 model/abilities.rb 文件。我发现它真的很好用。

于 2013-01-06T10:13:27.770 回答
0

有人记录了如何在 Rails 中执行此操作吗?它在哪里?

整个东西?不是我知道的。

对于子域?是的,它被称为catch-all A recordcatch-all subdomain等。只需将通配符 (*) 添加A record到域中,然后request.subdomain在 RoR 中使用以提取请求的子域。

@cheeseweasal 回答了其余的问题。

于 2013-01-06T06:45:35.483 回答