Rails多租户路由URL生成

时间:2017-03-25 23:59:01

标签: ruby-on-rails

我传统上使用子域来在多租户rails应用中的租户之间定位应用。对于我当前的项目,我认为将客户标识符挂起作为网址的第一部分是一种更好的方法。

我已经发现我可以扩展到一个参数,所以(我认为)解决了实际的路由。现在,我的视图和控制器中是否有一种干净的方式来生成这些路径?

例如,如果我有一个"帖子"资源,我希望它的URL是

GET /:customer_id/posts/:post_id

哪个似乎运行良好,但有没有更简单的方法来生成这些url与助手,而无需每次手动传入:customer_id作为路由参数?我想能够使用

<%= post_path(@post) %>

无需提供客户ID(看似脆弱且重复)

我想可能是一种更简单的问题,是否可以在每个生成的网址上附加默认参数?

1 个答案:

答案 0 :(得分:1)

您需要覆盖url_options

class ApplicationController < ActionController::Base

  def url_options
    { :customer => @customer }.merge(super)
  end

end

More info in this answer