3


我知道 rails 使用控制器操作样式的 url www.myapp.com/home/index,例如
我想在我的 rails 应用程序上有一个这样的 url,www.myapp.com/my_page_here这可能吗?如果可以,我会怎么做?

4

2 回答 2

6

您只需在文件中使用任何或块的get外部:resourcesnamespaceroutes.rb

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

假设您使用的是 Rails 3+,请不要使用match. 这可能很危险,因为如果页面接受来自表单的数据,它应该接受 POST 请求。match将允许对具有副作用的操作进行 GET 请求 - 这不好。

尽可能使用get,putpost这些变体。

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

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

这样,在您看来,my_page_path将等于http://{domain}/my_page_here

于 2012-09-07T10:29:06.403 回答
4

在这种情况下,您只需要制定一个路由规则来匹配该 url,它将类似于

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 - get 和 match 之间的区别

于 2012-09-07T10:25:56.433 回答