У меня есть много данных, которые я пытаюсь засеять в полиморфную модель в Rails 2.3.8. Связь для всех данных связана с моделью округа. Данные выглядит следующим образом:Ruby on Rails: Как вы высеваете столбец * _type в полиморфных моделях?
data = Datum.create([
...
{ :value => '14389', :value_type => County, :value_id =>'3103'},
{ :value => '59013', :value_type => County, :value_id =>'3105'},
{ :value => '17117', :value_type => County, :value_id =>'3106'},
...
])
: value_type => значение округа приводит к "неопределенному методу` base_class' для строки: Class."
У меня есть десятки тысяч этих значений, которые я хотел бы занести в базу данных. Они похожи на приведенные выше значения, за исключением некоторых из них связаны с моделью округа, некоторые с моделью государства, а некоторые с моделью города. Это статические значения, которые не будут редактироваться после посева в базу данных.
Как засеять модель в поле: value_type?
(или ... я приближается это неправильно, и если да, то как бы вы подойти к нему?)
Edit: Соответствующая часть файла schema.rb:
Исаака -
create_table "data", :force => true do |t|
t.integer "value"
t.string "value_type"
t.integer "value_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "counties", :force => true do |t|
t.string "name"
t.integer "state_id"
t.integer "ansi_code"
t.string "ansi_class"
t.datetime "created_at"
t.datetime "updated_at"
end
Я попытался следующие на посеве, тоже, и это не сработало (графство в кавычках):
{ :value => '14389', :value_type => 'County', :value_id =>'3103'},
Можете ли вы разместить соответствующие части вашего schema.rb? – 2010-07-14 00:03:02
Наличие значений 'value',' value_type' и 'value_id' не имеет смысла. Модель Datum будет использовать 'value_type' и' value_id', чтобы найти правильную запись в другой таблице, когда вы обращаетесь к ней с чем-то вроде 'somedatum.value' –
Jamie - Я последовал примеру Obie« The Rails Way »на стр. 215, где в модели комментариев есть поля 'subject',' subject_id' и 'subject_type'. Модель Comment включает в себя 'belongs_to: subject,: polymorphic => true', а затем другие классы имеют' has_many: comments,: as =>: subject'. В моей модели Datum включена строка 'belongs_to: value,: polymorphic => true'. Моя модель округа включала строку 'has_many: data,: as =>: value'. – Clay