2010-01-02 90 views

回答

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

對於那些想知道爲什麼上面的語法不適用於新的rails版本的人,請使用<%= semantic_form_for%>而不是<% %> – Abdo 2013-04-12 07:37:09

相關問題