\ n ERBの新しい行エスケープシーケンス

私はなぜ "\ n \ n"が私のコードで2つの改行を加えていないのか分かりません:

<%= (getparagraph(@geography, "geography")+"\n\n") if @geography != "Other" %> 

To clarify the method getparagraphs simply returns a paragraph of text. I'm trying to add two line breaks within the ruby code without having to use

何か案は?私が読んだことは、それがうまくいくことを意味します。

2
追加された 編集された
ビュー: 1

3 答え

あなたのヘルパーの名前に「段落」があるので、段落に囲んでCSSを使用して、段落の周りに適切なスペースを追加する必要があります。

<% if @geography != "Other" %>
    
<%= getparagraph(@geography, "geography") %>

<% end %>

You could always add a special class to the

if you need an extra spacing after this:

<% if @geography != "Other" %>
    
<%= getparagraph(@geography, "geography") %>

<% end %>

あなたのCSSで:

.geo-chunk {
    margin-bottom: 2em; /* Or whatever works */
}

And if this is to appear inside another

then you'd need to re-arrange the HTML a bit as you can't put a block element inside a

:

<div>
    <!-- The old 
content ... --> <% if @geography != "Other" %> <div class="geo-chunk"> <%= getparagraph(@geography, "geography") %> </div> <% end %> </div>
4
追加された
@Edward:クール、オプション2を微調整しなければならなかったのですが、(合法的に)

のブロック要素を置くことはできませんが、何もする必要はありませんオプション1で

追加された 著者 mu is too short,
+1;より意味的に合理的である。
追加された 著者 Dave Newton,
どうもありがとう!私はオプション1を使いました。もちろん、if文とend文の間に

タグまたは
タグを置くとは思いませんでした。

追加された 著者 Edward Castaño,

あなたはHTMLを出力しています。空白はレンダリング時に大部分無視されます。

Use
tags instead, and .html_safe.

3
追加された

これはHTML内ですか?その場合は、
を使用してください。 HTMLは複数の空白文字を無視するので、1つの空白または50の改行を持つことができ、結果は同じになります。

Another note: unless you're using XHTML (itself not a great idea), do not use self-closing tags such as
. The slash is invalid, so omit it.

1
追加された
実際、厳密に言えば、スラッシュは有効ですが、あなたが期待するものとは意味的に異なります。
追加された 著者 Marnen Laibow-Koser,