I'm porting the existing website from PHP to Ruby on Rails 3 and I have to keep the urls unchanged.
I have the route:
get 'companies/' => 'companies#index', :as => :companies
In a view file I have:
link_to 'Companies', companies_path
and this generates the url "http://website.com/companies" instead of "http://website.com/companies/".
I want the slash at the end of the url. Is it possible?
You can add this to your application.rb:
config.action_controller.default_url_options = { :trailing_slash => true }
This way all routes will be generated with a trailing slash automatically, with no need to modify each link in your project.
Simply do as follows:
link_to 'Companies', companies_path(:trailing_slash => true)
Documentation here.
I couldn't find any references, but adding trainling_slash: true
to the route definition also works (and avoids repeating oneself).
get 'companies/' => 'companies#index', :as => :companies, :trailing_slash => true
This was tested with Rails 3.2.13:
rails c
1.9.3p327 :005 > app.companies_path
=> "http://www.example.com/companies/
For rails 3.2:
Rails.application.routes.default_url_options[:trailing_slash]= true