1

Rails を使用simple_format()して、次のようにデータベースから住所を出力しています。

<%= simple_format(@person.address) %>

その結果、Safari ブラウザーで次のマークアップを取得します。

<p>
  "John Doe "<br>
  "123 Main Street "<br>
  "Eggham "<br>
  "United Kingdom"<br>
</p>

これは、テキストが左揃えで表示される限り問題ありません。

ただし、テキストを右揃えで表示したい場合、右端がまっすぐではありませ。HTML をよく見ると、その理由がわかります。最後の行を除いて、すべての行の最後に空白があります。

return各行の最後の文字を入力した直後に常に押すので、これらの空白がどこから来たのかわかりません。これらの空白を入力したことはありませんが、表示されるすべてのアドレスに表示されますsimple_format()

最後に煩わしい空白なしでRailsのテキストフィールドを印刷する別の方法またはより良い方法はありますか?

助けてくれてありがとう。

4

2 に答える 2

3

OK、私はこのヘルパーメソッドを使用することになりました:

def print_multiline(field)
  field.gsub("\r\n","<br/>").html_safe
end

simple_format()私にとっては、行末に空白が作成されないため、これははるかにうまく機能します。

私は次のようにビューで使用します。

<%= print_multiline(@person.address) %>
于 2013-08-10T10:04:44.367 に答える
0

input_string.gsub("\r\n","\n") は、Microsoft スタイルの CR/LF を Unix スタイルの LF 文字に置き換えます。

于 2013-08-09T19:30:05.827 に答える