我传统上使用子域来在多租户rails应用中的租户之间定位应用。对于我当前的项目,我认为将客户标识符挂起作为网址的第一部分是一种更好的方法。
我已经发现我可以扩展到一个参数,所以(我认为)解决了实际的路由。现在,我的视图和控制器中是否有一种干净的方式来生成这些路径?
例如,如果我有一个"帖子"资源,我希望它的URL是
GET /:customer_id/posts/:post_id
哪个似乎运行良好,但有没有更简单的方法来生成这些url与助手,而无需每次手动传入:customer_id作为路由参数?我想能够使用
<%= post_path(@post) %>
无需提供客户ID(看似脆弱且重复)
我想可能是一种更简单的问题,是否可以在每个生成的网址上附加默认参数?
答案 0 :(得分:1)
您需要覆盖url_options
class ApplicationController < ActionController::Base
def url_options
{ :customer => @customer }.merge(super)
end
end