我无法使用link_to转到我的帖子/索引页面。我有以下link_to:
<%= link_to('NEWS', posts_path(subdomain:"news"),:class=>'navtext',:style=>"color:#bfbebc!important;") %>
我的路线:
resources :posts , constraints: { subdomain: 'news' }
当我在http://news.lvh.me:3000/posts(link_to引用的实际页面)时,链接有效,但是当我放入任何其他页面(例如,root_path)时,它不起作用。我收到No route matches [GET] "/posts"
错误,我认为这意味着子域未在我的link_to中传递。有关如何做到这一点的任何想法?感谢。
答案 0 :(得分:1)
尝试posts_url
,而不是posts_path
。
即使没有(subdomain:"news")
,它在我的项目中也能正常工作。只需直接使用posts_url
。
答案 1 :(得分:1)
如果没有别的办法,你可以完全跳过帮手:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/exchange
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /exchange
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]
要使它在开发和生产中都有效,你可以在<%= link_to('NEWS', subdomain_link,:class=>'navtext',:style=>"color:#bfbebc!important;") %>
中编写一个帮助方法:
application_helper.rb
为了更进一步,您可以将def subdomain_link
Rails.env.development? ? '//whatever.localhost:3000' : '//news.whatever.com'
end
配置为接受字符串作为参数并将其插入到域字符串中。另一种方法是在subdomain_link
和config
中配置config/environments/development.rb
变量。