Как установить значение по умолчанию для ввода текста с помощью ActiveScaffold 1.2RC1?
Для более поздних версий это выглядит так (из http://activescaffold.com/2010/7/21/changes-in-naming-schema-for-overrides) должно работать:
module PlayersHelper
def player_name_form_column(record, options)
text_field :record, :name, options.merge(:value => record.name || 'new player')
end
end
Но он появляется в 1.2RC1, метод переопределения формы столбца принимает имя входа в качестве второго аргумента. Я пробовал это:
module PlayersHelper
def player_name_form_column(record, _)
text_field :record, :name, {:value => record.name || 'new player'}
end
end
Но это не имело никакого эффекта.
Обновление
Моя вторая попытка действительно сработала. Фактически обе эти работы:
text_field :record, :name, {:value => record.name || 'new player'}
text_field :record, :name, :value => (record.name || 'new player')
Интересно то, что ActiveScaffold фактически распространит значение по умолчанию длястолбец в базе данных для формы ввода! Моя таблица Players выглядит следующим образом:
mysql> show create table players\G
*************************** 1. row ***************************
Table: players
Create Table: CREATE TABLE `players` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) DEFAULT 'Manny Ramirez',
`created_at` datetime DEFAULT NULL,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
Итак, record.name фактически было установлено в «Мэнни Рамирез»,Это значит, что я никогда не видел свои значения по умолчанию. Таким образом, правильное действие здесь, по-видимому, заключается в изменении значения по умолчанию в базе данных, поскольку слепая установка значения приведет к нарушению правок (т. е. если имя игрока - «Дэвид Ортис», при нажатии кнопки «Правка» появится всплывающее окно).игрок со всеми атрибутами ДэвидаTes, но с именем, установленным на «Мэнни Рамирес».