2013-07-20 18 views
8

Próbuję dodać kategorie do mojej aplikacji Rails, ale nie bardzo wiem, jak to zrobić.Jak tworzyć kategorie w Railsach

Mam wiele pinezek (obrazów) i chcę, aby użytkownik mógł przypisać kategorię do tych pinezek. ASSIGN nie twórz, nie edytuj ani nie usuwaj kategorii, wystarczy wybrać jedną ze swoich numerów PIN. Oznacza to, że gdy użytkownik przesyła pinezkę, może wybrać z rozwijanej listy kategorię.

Następnie inny użytkownik może wybrać z Menu kategorię, a TYLKO Piny w tej Kategorii zostaną wyświetlone.

Jak to zrobić? Gdzie zacząć ?

Dziękuję

Odpowiedz

23

Pierwszy Jeśli nie chcesz zarządzać kategorie w aplikacji, a następnie można po prostu dodać pole kategorii w tabeli i wybrać kategorię w aplikacji:

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

sekundę , Jeśli chcesz zarządzać kategoriami w aplikacji, musisz utrzymywać oddzielny model i tabelę. Aby rozpocząć generowanie modelu:

rails g model category 

spowoduje dodanie modelu i migracji do katalogu aplikacji. Dodaj elementy do migracji:

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 

Definiowanie skojarzenia w kategorii & modelu Pin dodać walidację za to: -

In Category Model: 
    has_many :pins 

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

Tworzenie pewne kategorie według kategorii regulatora i formy (nie sądzę, muszę powiedzieć, że rzeczy, jesteś w stanie to zrobić samemu)

W swojej pin formie przesyłania dodaj tę select: -

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

Nadzieję, to pomoże.

+0

Rails Guy you Rock, Dziękuję bardzo. Ale mam jedno pytanie: Zrobiłem wszystkie powyższe. Teraz tworzę kontroler kategorii? czy nie pozwoliłoby to użytkownikom na tworzenie kategorii? Sry, jeśli to pytanie wydaje ci się zbyt nieobliczalne, całkiem nowe w Railsach. Dziękujemy –

+0

Tak, możesz dodawać, usuwać, edytować i usuwać swoje kategorie. Dodaj swoje metody do kontrolera i szablonów w swoich widokach. Teraz możesz iść. Proszę przyjąć odpowiedź, jeśli masz to, czego szukasz. Dzięki. –

+0

Myślę, że nie zrozumiałeś mnie dobrze !, Jestem całkiem nowy w Rails i mam pewne problemy ze zrozumieniem. Popłakuj za tym. Teraz, jeśli utworzę kontroler, użytkownik będzie mógł przejść do witryny site.com/categories i utworzyć kategorie. Nie chcę tego. Chcę tylko ustawić kategorie, a użytkownik powinien WYBRAĆ tylko z listy. –

0

możesz chcieć dodać metodę def to_s w swoim modelu kategorii. Wierzę, że wyświetli jakiś dziwny kod adresu pamięci za pomocą zwykłego Category.all w opcji f.select. Wszystko inne wygląda świetnie!