自定义URL在轨道上的红宝石

时间:2012-09-07 10:11:24

标签: ruby-on-rails ruby url url-routing


我知道rails使用控制器动作样式的URL,例如www.myapp.com/home/index
我希望在我的rails应用程序上有这样的URL,www.myapp.com/my_page_here这是可能的,如果是这样,我将如何解决这个问题?

2 个答案:

答案 0 :(得分:6)

您只需在get文件中的resourcesnamespace块之外使用routes.rb

get 'my_page_here ', :to => 'home#index'

假设您使用的是Rails 3+,请不要使用match。它可能很危险,因为如果页面接受表单中的数据,它应该接受POST请求。 <{1}}允许对带有副作用的动作发出GET请求 - 这不是好事。

始终尽可能使用matchgetput或这些变体。

要获取路径助手,请尝试:

post

这样,在您的观看中,get 'my_page_here ', :to => 'home#index', :as => :my_page 将等于my_page_path

答案 1 :(得分:3)

您只需要制定路由规则以匹配该网址 在这种情况下,它将类似于

match 'my_page_here' => 'your_controller#your_action'

您的控制器和操作将指定该页面的行为

所以你可以做到

match 'my_page_here' => 'home#index'

get 'my_page_here', :to => 'home#index'

正如其他回复中所建议的那样。

如果您有这样的控制器,

用于家庭控制器中的索引操作

有关详细信息,请参阅http://guides.rubyonrails.org/routing.html

另见Ruby on Rails Routes - difference between get and match