2013-11-04 75 views
1

例子,我做了一個表格這樣如果我使用rails view form模板,有什麼好處?

<form name="register" method="post" enctype="multipart/form-data"> 
    <p><h3>User check</h3></p> 
    <p>admin ID: <input type="text" name="userid"></p> 
    <p>admin Pass: <input type="password" name="password"></p> 

    <input type="submit" name="apply" value="Submit"></p> 
    <p>&nbsp;</p> 
</form> 

和我的經理想改變這種形式,以軌道這樣的表單模板,

<%= form_for(:model) do |form| %> 
<p> 
    <%=form.label :input%> 
    <%=form.text_field :input, :placeholder => 'Enter text here...'%> 
</p> 

<%end%> 

我的問題是,它正常工作與基於HTML的前碼。爲什麼我必須將其更改爲rails代碼?我只想保留我的前端代碼......我不知道爲什麼我必須改變這個:(另外,我是Ruby on Rails的新手,這是主要原因,我不想改變現有的代碼,它是否工作。

我真的很討厭這個工作。我必須將所有屬性Rails代碼翻譯,這讓我真的筋疲力盡:(使用Rails形式的

回答

1

表單構建者在這裏幫助

表單助手應該讓你的生活更簡單。如果您不先寫純HTML,它們比純HTML替代方法更快。

他們也很難集成件提供了很多容易實現的,如:

  • 顯示的日期選擇選擇組
  • 鏡像事實複選框已選中在post數據
  • 如果你添加一個文件輸入(實際上並不難實現,但容易忘記),自動在表單上添加multipart param
  • ...還有更多

進一步發展

所有這些都是關於舒適性的,如果你已經有了一個完美的純html實現,你可能會認爲你可以避免它。

但是如果某人稍後必須在表單中添加日期選擇輸入,會發生什麼?她將不得不使用rails helper,因爲它在控制器部分中節省了大量的時間來在數據庫中設置日期。但是她不能使用表單構建器,因爲你沒有使用它。

現在,她必須選擇使用非建造者date_select標籤混合在純html或...完全重寫您的表格。你可能會意識到,混合不同的風格通常被認爲是醜陋的,我們不喜歡紅寶石的醜陋。

安全

表單標籤助手還提供了一個重要的安全措施:CSRF protection。每次使用導軌助手創建<form>標籤時,它都會自動添加包含密鑰的隱藏輸入。該密鑰必須與表格數據一起發佈以證明源自當前網站的請求。

如果您使用純html格式,您將不會擁有此安全性。當然,你可以使用正確的方法手動添加令牌,但這會再浪費時間比簡單地使用表單助手。

底線

主要的問題是,你使用Rails助手之前寫純HTML - 這是什麼是浪費時間。

0

一些好處助手是:

  • 輸入元素的名稱一致的命名和IDS
  • 國際化支持對於標籤
  • 用的form_for生成的URL是不易出錯
  • 複選框更好地處理
  • 尼斯傭工像options_for_select
  • 少打字

這最後的可能是我最喜歡的:少打字

相關問題