default_url_options e rails 3
Come ActionController::Base#default_url_options è deprecato, mi chiedo come impostare l’url predefinito di opzioni in rails3. L’url di default le opzioni non sono statici, ma dipendente della richiesta corrente.
http://apidock.com/rails/ActionController/Base/default_url_options
Grazie,
Corin
ActionController::Base#default_url_options
non è deprecata.
Per impostare l’url di opzioni per la richiesta corrente usare qualcosa come questo, in un controllore:
Ora :profilo => current_profile sarà automerge percorso/url parametri.
Esempio di routing:
Basta scrivere:
e se current_profile ha impostato to_param di ‘lucas’:
:profile
percomment.user.city_name
, in modo da ottenere/newyork/comments/123
?current_profile
?Credo che il metodo preferito è ora di dire al router per gestire questo:
Si può mettere questa riga
routes.rb
o un inizializzatore. A seconda di quale si preferisce. Si potrebbe anche metterlo nel vostro ambiente configs se i valori cambiano in base al proprio ambiente.account_id
? Per esempioscope '/:account_id'
– Come vorreste essere in grado di impostareaccount_id
dinamicamente alla config livello?routes.rb
o un inizializzatore. A seconda di quale si preferisce. Si potrebbe anche metterlo nel vostro ambiente configs se i valori cambiano in base al proprio ambiente.Che apidock.com link è fuorviante. default_url_options non è deprecata.
http://guides.rubyonrails.org/action_controller_overview.html#default_url_options
Per Rails 3, in particolare, la canonica modo per farlo è con l’aggiunta di un
default_url_options
metodo per laApplicationController
.Ho dovuto capire questo fuori di me, quindi so che funziona.
Questo è un adattamento del Rails 3 Guida:
http://guides.rubyonrails.org/v3.2.21/action_controller_overview.html#default_url_options
Rails.application.routes.default_url_options[:host]= 'localhost:3000'
In developemnt.rb /test.rb, può essere più conciso come segue: