2012-06-23 36 views
1

我想獲得一些關於樣式化ERB模板的最佳實踐的社區意見。造型的最佳實踐ERB

  • 我使用的2
  • 一個片寬度我用軟片(空格)。
  • 我用的80

一個字總結我縮進我所有的HTML標籤除了Ruby代碼在我的ERB模板。

這通常使非常可讀的ERB。

假設上述或類似的參數,你如何更喜歡縮進更長的行?

考慮這個例子:

<div class="content"> 
    <div class="row"> 
    <div class="span10"> 
     <%= simple_form_for(@user, html: { class: 'form-horizontal' }) do |f| %> 
     <%= f.input :MembershipID, label: 'Membership ID :', hint: 'Use the user\'s official Membership ID if they have one. Otherwise, enter their phone number (e.g. 2125551234)', input_html: { value: @user[:MembershipID] } %> 
     <% end %> 
    </div> 
    </div> 
</div> 

f.input線變得是相當醜陋,無法讀取。

我在想這樣的事情會很理想,但我想在改變我的很多風格之前得到一些反饋。

<div class="content"> 
    <div class="row"> 
    <div class="span10"> 
     <%= simple_form_for(@user, html: { class: 'form-horizontal' }) do |f| %> 
     <%= f.input :MembershipID, 
       label: 'Membership ID :', 
       hint: 'Use the user\'s official Membership ID if they have one. Otherwise, enter their phone number (e.g. 2125551234)', 
       input_html: { value: @user[:MembershipID] } %> 
     <% end %> 
    </div> 
    </div> 
</div> 

我來回從ERB雙縮進是否開始標籤<%=或從助手名f.input更好。

請稱重! (請讓我們不要把它變成ERB與HAML的爭論,只能假設ERB!)

謝謝。

+1

FWIW,我通常遵循本指南:https://github.com/bbatsov/ruby-style-guide,但它並沒有真正解決ERB問題。我不喜歡將所有內容縮進括號的地方(或者如果你使用它們的話)。 – jkwantum

+0

不確定你的單詞包裝。我將代碼保持在〜<60每行,並插入我自己的回報。我發現如果它包裝了,它會使代碼難以閱讀。我也發現,如果它比那更長,我可能會試圖在一行上做太多。 –

+0

這是一個很好的觀點。我可能會嘗試插入我自己的回報。我使用的是Sublime Text 2,你說得對,有時每行80個自動換行都會造成奇怪的縮進。謝謝。 – jkwantum

回答

2

有些事情要考慮:

  • 不要使用「span10」和「行」類,而是在你的CSS應用此
  • 使用的幫手,即使你不打算重用他們(目前),它清理你的代碼

這給了你這樣的:

<div class="content"> 
    <%= simple_form_for(@user) do |f| %> 
    <%= membership_input_field %> 
    <% end %> 
</div> 

SCS S:

.content { 
    @extend .row; 
    #users_form { 
    @extend .span10; 
    @extend .form-horizontal; 
    } 
} 

我現在不能測試這個,但你應該得到一般的想法。更清潔,更無用的類來設計您的HTML樣式。

+0

感謝您的回覆。我認爲將這種類型的代碼移入幫助程序或主持人是一種方式,因爲其他人也通過Twitter向我提到了這一點。 – jkwantum

+0

不要忘記標記答案有幫助/正確,它可以幫助我/他人保持積極的態度幫助你和其他人:) – JeanMertz

1

對於長或複雜的ERB擴展,我經常去多像這樣:

<div> 
    <div> 
    <%= 
     some_call_with_lots_of_args_or_a_block(
     arg1, 
     arg2 
    ) do 
     block_stuff() 
     end 
    %> 
    </div> 
</div> 

大量的線,但現在縮進所有的「意義」爲「意義上的」給定值。 HTH!