has_many i belongs_to

Cześć,
natrafiłem na taki problem chyba mam jakieś zaćmienie umysłu
mamy.

class Product .... belongs_to :category
i

class Category .... has_many :products
w migracji dla tabeli products mam pole category_id + ustawiony klucz obcy

i teraz tworzę nowy produkt np p = Product.create(:name => "Mleko’, :category_id => 1) gdzie 1 to np nabiał
i jak teraz dobrać się do category.name wybierając produkt

p.category.name

?

Dzięki wywalało mi taki błąd:
ActiveRecord::AssociationTypeMismatch: Category(#70193705301600) expected, got Fixnum(#70193674173460)
okazało się że literówka się wkradła. Myślałem że robię coś źle.

Podziękował

taki błąd się pojawia, gdy robisz

product.category = 1 # zamiast product.category_id = 1 lub product.category = Category.first

Ogólnie polecam wszelkiego rodzaju pomoce dla początkujących;)

  Product.find(1).category.name

lub

# product.rb delegate :name, :to => :category, :prefix => true

  Product.find(1).category_name

@sarniak - na delegatory przyjdzie czas – kolega jeszcze mocno początkujący jest :slight_smile:

Dzięki rozjaśniłeś mi wszystko