Quiero que mis Rails 2.3.2 aplicación para responder y generar URL de este modo:rieles recursos REST utilizando to_param para un campo que contiene caracteres de separación
/websites/asd.com
/websites/asd.com/dns_records/new
En mi config/routes.rb, que tengo:
map.resources :websites, :has_many => :dns_records
map.resources :dns_records, :belongs_to => :website
que pueda entonces tener acceso a recursos tales como:
/websites/1
/websites/1/dns_records
Mediante la modificación de mi modelo de sitio web, que pueda g enerate mejores URL como estas:
class Website < ActiveRecord::Base
def to_param
domain_name
end
...
end
# app/views/websites/index.erb
<% @websites.each do |w| %>
<%= link_to "Show #{w}", website_path(w) %>
<% end %>
# Produces a link to:
/websites/example_without_periods_in_name
Sin embargo, para los nombres de dominio que contienen '.' personajes, Rails se pone triste. Creo que esto es porque el '.' El carácter se define en ActionController :: Routing :: SEPARATORS, que enumera los caracteres especiales para dividir la URL. Esto te permite hacer cosas como /websites/1.xml.
SO, ¿hay una manera limpia de permitir '.' caracteres en URL RESTful?
He intentado redefinir ActionController :: Routing :: SEPARATORS para que no incluya '.', Que es una manera totalmente incorrecta de resolver el problema. Esto arruina las URL generadas al agregarles ".: Format".
También sé que puedo agregar: requirements => {: id => regexp} a mi config/routes.rb para que coincida con un nombre de dominio que incluya '.' (sin esto, params [: id] se establece en la parte del nombre de dominio antes del primer '.'), pero esto no ayuda a generar URL/rutas de manera REST.
Muchas gracias :) Nick