Custom url in ruby on rails

2019-02-24 14:53发布


I know rails uses the controller action style urls like www.myapp.com/home/index for example
I would like to have a url like this on my rails app, www.myapp.com/my_page_here is this possible and if so how would I go about this?

2条回答
▲ chillily
2楼-- · 2019-02-24 15:20

you just need to make a routing rule to match that url in this case it will be something like

match 'my_page_here' => 'your_controller#your_action'

your controller and action will specify the behavior of that page

so you could do

match 'my_page_here' => 'home#index'

or

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

as suggested in other responses.

for index action in home controller if you have such a controller

see http://guides.rubyonrails.org/routing.html for more details

also see Ruby on Rails Routes - difference between get and match

查看更多
冷血范
3楼-- · 2019-02-24 15:28

You just use a get outside of any resources or namespace block in your routes.rb file:

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

Assuming you are using Rails 3+, do NOT use match. It can be dangerous, because if a page accepts data from a form, it should take POST requests. match would allow GET requests on an action with side-effects - which is NOT good.

Always use get, put, post or these variants where possible.

To get a path helper, try:

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

That way, in your views, my_page_path will equal http://{domain}/my_page_here

查看更多
登录 后发表回答