Я пытаюсь использовать значения по умолчанию для модели в рельсах.Лучший документированный способ сделать это, который я видел, это использовать параметр: default в миграции.Тем не менее, похоже, что это работает только для значений.Я пытаюсь установить выражение по умолчанию, в частности currval('customers_id_seq'::regclass)
.Я могу добавить выражение по умолчанию вручную, но не могу понять, как указать rails использовать значение по умолчанию.Как я могу использовать это значение по умолчанию при создании объектов модели?
EDIT Вот более конкретный пример:
class CreateTestmodels < ActiveRecord::Migration
def up
create_table :testmodels do |t|
t.integer :idxfield, :null=>false
t.string :datafield
t.timestamps
end
execute("ALTER TABLE testmodels ALTER COLUMN idxfield SET DEFAULT currval('testmodels_id_seq'::regclass)")
end
def down
drop_table :testmodels
end
end
С помощью этой миграции я могу запустить insert into testmodels (datafield) VALUES ('sometestdata');
, который добавит в таблицу строку, в которой idxfield
по умолчанию будет id
.
Однако, если я запускаю Testmodel.create(:datafield=>"testdata")
из консоли rails, он заменяет ноль на idxfield
и выдает исключение.