2013-05-15 79 views
0

我最近開始在rails上學習Ruby並閱讀各種教程。以前,我用PHP做了代碼。最佳在Ruby on Rails視圖中生成HTML的最佳方式

我在教程中找到的做法之一如下。我想知道,如果這是最佳方式?這有什麼可能的情況下使用?

對於例如,當生成的視圖的形式中,使用了下面的代碼:

<h1>Contact us</h1> 
<%= form_tag do %> 
    <%= label_tag ('Name') %> 
    <%= text_field_tag 'Name','Enter name here'%> 
    <%= label_tag ('Email') %> 
    <%= email_field_tag('Email', @email, options = {}) %> 
    <%= submit_tag "Edit this article" %> 
<% end %> 

豈不一個是一種好的做法直接在視圖中使用的HTML代碼,只是使用紅寶石無論動態東西生成?是否有任何理由我應該使用這些方法來生成html,而不是加快編碼的唯一原因(對於更熟悉ruby方法的人)。因爲我是ruby的新手,所以我會更快地編寫HTML,並且只在需要時才使用Ruby,而不是生成HTML的簡單原因。

什麼是行業慣例。將這種不使用Ruby方法生成HTML的習慣會讓我難以閱讀其他的代碼嗎?

感謝您提前做出任何回覆。

回答

1

這些是ActionView::Helper::FormHelpers的方法。他們不僅生成裸露的HTML標記。除了插入標籤之外,他們還添加了足夠的id,class,data屬性等。例如,動態插入的id負責創建可用的params散列,散列又負責控制器中的大部分表單操作。

您可以嘗試將通過直接使用HTML,但會發生兩兩件事:

  1. 骯髒和冗長的HTML標記。
  2. 非傳統用途。
  3. 安全問題,如XSS漏洞利用。 (正如丹尼斯指出的那樣)
+0

和3.安全問題。 –

0

對Rails的幫助確實有所幫助,但他們不會讓它變得更加困難。當你習慣了使用它,感覺很棒。

無論如何,你仍然可以直接使用HTML代碼,如果你不想學習或使用助手,你可以做到這一點,但你會錯過一個很酷的東西,當然,如果它發生,你應該在一個我確信團隊的其他成員將使用助手而不是html。

And rails促進了「約定優於配置」,其中一個好處是要知道作爲rails開發人員,您將能夠在沒有迷失方向尋找文件的情況下,在沒有太多適應任何Rails項目的情況下工作,是mvc工作,和其他類似的東西。

當你學習和練習更多使用助手時,你將開始看到它的所有「能力」,並看看它有多大的幫助。

0

您正在使用的ruby方法被稱爲幫手。他們在那裏做這件事:幫助。起初,有很多東西需要學習,但是在瞭解它們之後,它們可以節省大量的時間。而且,它們不是ruby方法,它們屬於rails框架 - 語言和框架是兩個截然不同的東西。

這裏有一些原因,你應該使用視圖助手:

  • 全部由助手產生HTML將遵循同樣的結構,使你的HTML更加一致。
  • 它們可以幫助您避免陷入錯誤。例如,如果你寫出完整的HTML,你可能會錯過一個結束標記。如果您使用rails助手,您可以確保生成的HTML是有效且正確的。它幾乎消除了潛在的入侵點。
  • 其他rails開發人員熟悉這些方法,並會發現它更容易處理您的代碼(如果這種情況必須發生的話)。
  • 從美學的角度來看,我更喜歡閱讀幫手的方法,而不是試圖掃描HTML和HTML的行,我相信其他許多人都是一樣的。它更簡潔。
相關問題