强制子域和删除子域

如何解决强制子域和删除子域

| 我正在编写一个将使用basecamp样式子域的应用程序(请参阅帖子)。 应用程序的某些部分应始终位于子域中,而某些部分则永远不应位于子域中。例如,“主页”页面不应位于子域中,但博客和帖子资源始终应位于子域中。请记住,我不知道子域,因为每个帐户都有一个。 我这样设置路线(示例)。它可以匹配路线,因此效果很好,但是我很难强制我的应用链接到正确的位置。
MyApp::Application.routes.draw do

  # these should all route to mysubdomain.myapp.com
  # Clicking on a post from myapp.com/categories/12 should take you to mysubdomain.myapp.com/posts/14
  constraints(Subdomain) do
    resources :blogs { resources :posts }
  end

  # these should all route to myapp.com (clicking on one of these links from mysubdomain.myapp.com should go to myapp.com/categories/12)
  constraints(NoSubDomain) do
    resources :categories
  end

end
问题是,一旦进入子域,到其他页面(类别等)的所有链接都包含该子域。我不确定解决此问题的最佳方法。非常感谢你的帮助。

解决方法

看起来可以通过重写
url_for
方法来包含
:subdomain
选项来完成。 请参阅RailsCasts#221的清理代码以更改子域部分。 Railscasts:http://railscasts.com/episodes/221-subdomains-in-rails-3 ASCII广播:http://asciicasts.com/episodes/221-subdomains-in-rails-3 然后,您可以执行以下操作:
<p><%= link_to \"All Blogs\",root_url(:subdomain => false) %></p>  
,我认为问题的关键在于您需要使用resource_name_url而不是resource_name_path。 路径仅提供相对URL(/ accounts)与url的相对关系,而URL返回完整的路径(www.example.com/accounts)。 希望能有所帮助, 安德鲁,可能会有更好的方法,我很想知道是否存在,但是为此我开始做的是在配置中设置基本域名(不是Rails conf,而是我自己的应用配置),然后覆盖“ 4”助手来始终转到基本域名。显然,您可以为该方法使用其他名称,但是我从来没有使用ѭ5来表示其他任何名称,因此我将其保留为Rails式命名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?