/ / Rails routing e come mantenere la visualizzazione delle categorie ASCIUTTA? - ruby-on-rails, ruby, ruby-on-rails-3

Instradamento dei binari e come mantenere la vista delle categorie? - ruby-on-rails, ruby, ruby-on-rail-3

Ho un modello che ha un'associazione appartiene_to alle categorie.

Esempio:

  • Cosa
    • appartiene_to: categoria
  • Categoria
    • has_one: cosa

Devo creare un file di visualizzazione per ogni categoria per trovare la categoria data, ad esempio:

views/things/category_name1.html.erb
views/things/category_name2.html.erb
views/things/category_name3.html.erb
views/things/category_name4.html.erb

O c'è un modo più conveniente per farlo?

Le visualizzazioni sono le stesse per ogni categoria ad eccezione del nome della categoria nel file find metodo. Ho provato questo:

<%= Thing.find(:all, :conditions => {:category => "Name of category"}) %>

Voglio che il mio URL sia /category_name/name_of_thing.

risposte:

2 per risposta № 1

Il friendly_id gem gestirà la generazione dell'URL che stai utilizzandocercando. Nelle tue rotte, vorrai avere qualcosa sulla falsariga di (Rails 3). Non vuoi avere una vista per ogni categoria - questa dovrebbe essere dinamica.

resources :categories do
resources :things
end

1 per risposta № 2

No! Non creare visualizzazioni ridondanti in questo modo.

Inserisci il codice seguente nel tuo file Category model e qualsiasi altro modello a cui desideri avere URL descrittivi:

def to_param
return "#{id} #{name}".parameterize
end

assumendo name è un attributo di Category, questo creerà URL univoci contenenti il ​​nome della categoria. Se sai che il nome sarà sicuramente univoco, puoi sostituire la riga di ritorno con just name.parameterize.