2010-09-01 28 views
41

我的很多用户都继续使用http://(rails应用程序URL)/博客,但实际上我没有博客。我终于建立了一个Posterous博客,现在想引导我的用户在那里。有没有办法使用routes.rb配置它?有没有更好的方式,不涉及编辑httpd.conf文件?创建到外部URL的导轨路线

回答

57

取决于您使用的Rails版本。

的Rails 3

# in routes.rb 
match "/blog" => redirect("http://example.com/blog"), :as => :blog 

梁2

# in routes.rb 
map.blog '/blog', 
    :controller => "a_helper_controller", 
    :action => "redirect_to_blog" 

# in a_helper_controller.rb 
def redirect_to_blog 
    redirect_to "http://example.com/blog" 
end 
+0

感谢你。关于什么控制器放置或命名新的帮助控制器的建议? – 2011-03-17 15:44:09

+1

如果你想在你的路线中使用target =“_ blank”怎么办? 可以指定这样的路线: def external_url(); “http://example.com/blog”;结束 在routes.rb中定义? 我认为唯一的解决方案是将他们定义为助手。 – tothemario 2011-10-24 19:25:47

+0

非常感谢! – 2014-04-24 00:59:04

58

我知道这是旧的,所以,如果别人需要这种钢轨4:

get "/blog" => redirect("http://example.com/blog") 

使用get而不是匹配Rails 4,否则你会得到一个运行时错误

+0

这似乎适用于我,但我有一个客户使用Internet Explorer的问题: 文件关联 Mime类型:application/json,Windows无法识别此MIME类型。 – user1434177 2014-10-06 02:02:00

+0

对我刚才的工作非常有帮助。非常感谢你! – kdweber89 2016-05-19 21:41:12

+0

有没有人知道如何在轨道5中做到这一点?似乎没有在Rails 4中使用它的方式,但我似乎无法在Rails 5上找到这方面的资源。我一直收到404。 – JohnSalzarulo 2018-02-23 18:40:36