Custom url in ruby on rails

后端 未结 2 491
醉话见心
醉话见心 2021-01-21 01:29


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,

相关标签:
2条回答
  • 2021-01-21 01:54

    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

    0 讨论(0)
  • 2021-01-21 02:15

    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

    0 讨论(0)
提交回复
热议问题