2013-07-20 20 views
8

sto provando ad aggiungere categorie alla mia app Rails, ma non so come farlo.Come creare categorie in Rails

Ho molti pin (immagini) e voglio che l'utente sia in grado di assegnare una categoria su quei pin. ASSIGN non creare, modificare o eliminare una categoria, selezionandone solo una per il Pin. Significa che, quando un utente carica un pin, può scegliere da una lista a discesa una categoria.

Quindi, un altro utente può scegliere dal Menu una categoria e SOLO i Pin in questa categoria verranno elencati.

Come faccio? Dove iniziare ?

Grazie

risposta

23

in primo luogo se non si vuole gestire categorie nell'applicazione, allora si può semplicemente aggiungere un campo categoria della tabella e la categoria selezionate nell'applicazione:

<%= f.select :category, [ 'Box', 'Cover', 'Poster' ], :prompt => 'Select One' %> 

Seconda , Se vuoi gestire le categorie nella tua applicazione, devi tenere un modello e una tabella separati per essa. Quindi puoi iniziare a generare il tuo modello:

rails g model category 

aggiungerà modello e migrazione nella directory dell'applicazione. Aggiungi elementi per la migrazione:

class CreateCategories < ActiveRecord::Migration 
    def change 
    create_table :categories do |t| 
     t.string :name 
     t.text :description 
     ## you can add more stuff as per your requirements 
     t.timestamps 
    end 
    end 
end 

Definire associazioni nella categoria & modello Pin aggiungere convalida per questo: -

In Category Model: 
    has_many :pins 

In Pin Model : 
    belongs_to :category 
    validates :category, presence: true 

Creare alcune categorie di controller di categorie e la forma (non credo, ho bisogno per dirvi che roba, siete in grado di farlo da soli)

Nella vostra forma uploading pin Aggiungi questo selezionare: -

<%= f.select :category, Category.all, :prompt => "Select One" %> 

Sperare, sarà d'aiuto.

+0

Rails Guy you Rock, grazie mille. Ma ho una domanda: ho fatto tutto quanto sopra. Ora, creo un controller di categorie? non permetterebbe agli utenti di creare anche categorie? Sry se questa domanda ti sembra troppo noiosa, sono abbastanza nuova per Rails. Grazie –

+0

Sì, è possibile aggiungere, rimuovere, modificare ed eliminare le categorie. Aggiungi i tuoi metodi nel controller e nei modelli nelle visualizzazioni. Ora sei a posto. Si prega di accettare la risposta se si ottiene quello che stavi cercando. Grazie. –

+0

Penso che tu non mi abbia capito bene !, Sono abbastanza nuovo da Rails e ho qualche problema a capire. Sry per quello. Ora, se creo un controller, l'utente ha la possibilità di andare su site.com/categories e creare categorie. Non lo voglio Voglio solo impostare le categorie e l'utente deve solo scegliere dall'elenco. –

0

si potrebbe voler aggiungere un metodo def to_s sul modello di categoria. Credo che visualizzerà qualche strano codice indirizzo di memoria semplicemente usando Category.all chiaro sull'opzione f.select. Tutto il resto sembra fantastico!