2011-03-14 105 views
1

如何使用ActiveScaffold 1.2RC1为文本输入设置默认值?如何在ActiveScaffold中设置文本输入的默认值?

更高版本,它看起来像这样(从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实际上将在数据库中传播的默认值一栏,输入表单!我玩家表看起来像这样:

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实际上是设置为“拉米瑞兹”,意思是我从来没有见过我的默认。因此,这里要做的正确的事情似乎是修改数据库中的默认值,因为盲目地设置值会中断编辑(即如果玩家的名字是'David Ortiz',点击编辑会弹出一个包含所有David属性的玩家,但与设置为“拉米瑞兹”。名字

回答

5

尝试也许:value => "Something"

+0

谢谢,这不仅是工作,但让我见识到了疯狂的ActiveScaffold功能。 – 2011-03-14 13:44:45