Problem z relacjami

Mam dwa modele i takie relacje między nimi

class Order belongs_to :buy_id, :class_name => 'Currency', :foreign_key => 'buy_id' belongs_to :sell_id, :class_name => 'Currency', :foreign_key => 'sell_id' ....

class Currency has_many :orders ...

<%= f.select :sell_id, options_from_collection_for_select(@currency, "id", "name"),{}, :onchange => "get_order();" %>

i przy tworzeniu nowego zamówienia dostaję taki błąd

[code]ActiveRecord::AssociationTypeMismatch in OrdersController#create

Currency(#70337583827800) expected, got String(#70337555586940)[/code]
gdy wywalę asocjacje między modelami wszystko działa i już nie mam pomysłu co może być źle

hej, masz tu niezły bałagan.

Zacznij od zmiany nazwy tych relacji (wymyśl jakieś lepsze niż buy i sell).

Błąd (najprawdopodobniej) bierze się z tego, że w modelu masz akcesory do kolumn sell_id i buy_id, a do tego zdefiniowałeś sobie relacje, które te pierwotne akcesory nadpisały :slight_smile:
W create przekazujesz do modelu paramsy, w których sell_id i buy_id zawierają stringi (zapewne są to id przed konwersją na inty), a settery buy_id= i sell_id= oczekują activerecorda.

Dzięki, odpowiedź jest trafiona w dziesiątkę. Już wszystko hula faktycznie relacje nadpisywały akcesory … źle zrozumiałem temat myślałem że relacje mają się tak samo nazywać jak pola w akcesorach.

Pozdro