Ich möchte meine Rails 2.3.2 app reagieren und generieren URLs wie folgt:Rails RESTful Ressourcen für ein Feld mit to_param, die Trennzeichen enthält
/websites/asd.com
/websites/asd.com/dns_records/new
In meiner config/routes.rb, ich habe:
map.resources :websites, :has_many => :dns_records
map.resources :dns_records, :belongs_to => :website
ich kann dann Zugriff auf Ressourcen wie:
/websites/1
/websites/1/dns_records
Durch meine Webseite Modell zu modifizieren, kann ich g Erstellen Sie bessere URLs wie folgt:
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
Für Domain-Namen, die '.' Charaktere, Rails wird unglücklich. Ich glaube, das liegt daran, dass das "." Das Zeichen ist in ActionController :: Routing :: SEPARATORS definiert, in dem Sonderzeichen zum Aufteilen der URL aufgeführt sind. Dies ermöglicht Ihnen, Dinge wie /websites/1.xml zu tun.
SO, gibt es eine saubere Möglichkeit, '.' Zeichen in RESTful URLs?
Ich habe versucht, Actioncontroller :: Routing :: SEPARATOR Neudefinition nicht enthalten ‚‘, das ist ein ganz schlechter Weg, um das Problem zu lösen. Dadurch werden generierte URLs durch Anhängen von ".: Format" an sie verfälscht.
Ich weiß auch, ich kann hinzufügen: Anforderungen => {: ID => regexp} zu meiner config/routes.rb, um einen Domänennamen, der "." (Ohne dies wird params [: id] auf den Teil des Domain-Namens vor dem ersten '.' gesetzt), aber dies hilft nicht bei der URL-Erstellung/Pfade RESTfully.
Vielen Dank :) Nick