Как установить значение по умолчанию для ввода текста в ActiveScaffold? - PullRequest
1 голос
/ 14 марта 2011

Как установить значение по умолчанию для ввода текста с помощью 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, но с именем, установленным на «Мэнни Рамирес».

1 Ответ

5 голосов
/ 14 марта 2011

Попробуйте, может быть, :value => "Something"

...