2011-03-14 4 views
1

ActiveScaffold 1.2RC1을 사용하여 텍스트 입력의 기본값을 어떻게 설정합니까? 열 형태로 재정의 방법은 두 번째 인수로 입력 이름을 사용,ActiveScaffold에서 텍스트 입력의 기본값을 설정하는 방법은 무엇입니까?

module PlayersHelper 
    def player_name_form_column(record, options) 
    text_field :record, :name, options.merge(:value => record.name || 'new player') 
    end 
end 

을하지만 1.2RC1에 나타납니다

이후 버전, 그것을 작동합니다 (http://activescaffold.com/2010/7/21/changes-in-naming-schema-for-overrides에서) 다음과 같습니다. 나는 이것을 시도했다 :

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 기능에 나에게 통찰력을 주었다. –

관련 문제