2011-03-14 104 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