我希望能够根据数据库中的信息动态地将URL映射到控制器.
我正在寻找功能相当的东西(假设一个View模型):
map.route '/:view_name',
:controller => lambda { View.find_by_name(params[:view_name]).controller }
Run Code Online (Sandbox Code Playgroud)
其他人建议动态重建路由,但这对我不起作用,因为可能有数千个视图映射到同一个Controller
我的应用程序允许人们创建投资组合 我希望他们能够将他们的域名连接到他们的投资组合.
所以somedomain.com会显示/ portfolio/12,someotherdomain.com会显示/ portfolio/13等等.但我不想重定向.我希望用户在浏览器网址中看到somedomain.com.
我怎么做?
好的,我找到了这个解决方案:
match "/" => "portfolio#show",
:constraints => { :domain => "somedomain.com" },
:defaults => { :id => '1' }
Run Code Online (Sandbox Code Playgroud)
由于我没有很多自定义域,现在这很好,但问题是 - 如何使这个动态,从db读取域和id数据?
我正在创建一个类似博客的应用程序,我们允许客户使用自己的自定义域名,例如domainexample.com,因此每个不同的域都提供相同的应用程序,但内容不同.
但是,我正在努力弄清楚如何在生产服务器上设置它.如果我的生产服务器有一个静态IP,那么我肯定可以在每个域上设置一条记录到生产服务器的ip.
但是,如果生产服务器没有静态IP,该怎么办?例如,如果我们想在heroku或engineyard上托管它?我在网上看到了一些需要使用重写规则的解决方案,但它们需要重新启动服务器,并且在新用户注册时无法真正动态添加和删除新域.有没有人知道任何好的解决方案让多个域点击一个rails应用程序?