2010-01-02 1 views
16

formtastic을 사용하여 양식을 만들고 싶습니다. 그러나 해당 모델 (사용자 이름, 암호 및 openid URL이있는 로그인 양식)과 관련된 모델이 없습니다.모델없이 formtastic으로 양식을 만드는 방법이 있습니까?

물론 모델을 만들 수는 있지만 그 모델은 유용한 코드가없는 해킹 일뿐입니다.

당신은 필드 이름을 생성하는 데 사용됩니다 모델, 대신 문자열을 전달할 수 있습니다

답변

44

:

<% semantic_form_for 'user', :url => 'login' do |f| %> 
    <% f.inputs :name => 'Login Details' do %> 
     <%= f.input :username %> 
     <%= f.input :password %> 
    <% end %> 
<% end %> 

같은 생산합니다 어느 :

<form action="/login" class="formtastic user" method="post"><div style="margin:0;padding:0;display:inline"><input name="authenticity_token" type="hidden" value="E/NksKRd7Twh4nGp1Qc8jBQNfqYDn8gg6sWdTdCtl+g=" /></div> 
    <fieldset class="inputs"><legend><span>Login Details</span></legend><ol> 
     <li class="string required" id="user_username_input"><label for="user_username">Username<abbr title="required">*</abbr></label><input id="user_username" name="user[username]" size="50" type="text" /></li> 
     <li class="password required" id="user_password_input"><label for="user_password">Password<abbr title="required">*</abbr></label><input id="user_password" name="user[password]" size="50" type="password" /></li> 
    </ol></fieldset> 
</form> 

을하지만 당신은해야합니다 formtastic은 어떤 유형의 필드를 사용해야 할지를 결정할 수 없으므로 모든 옵션이 특정 텍스트 필드로 설정됩니다 (자동으로 password 암호 유형 필드와 같은 필드를 만들지 만).

더 나은 방법은 세션 모델을 사용하는 것이지만 더 자세한 정보는 authlogic (http://github.com/binarylogic/authlogic) 작동 방식을 살펴보십시오.

+1

위의 구문이 새 레일 버전에서 작동하지 않는 이유가 궁금하신 분들은 <% %> 대신 <% = semantic_form_for %>를 사용하십시오. – Abdo