如何在Ruby on Rails中使用换行符填充表单中的文本字段

时间:2014-05-07 15:56:41

标签: ruby-on-rails textfield line-breaks

我在Rails表单中有一个文本字段,我希望显示带有换行符的字符串。出于某种原因,我无法让Rails在不同的行上显示它们。以下是我的控制器的编辑操作中的代码:

def edit
    @billing_log = BillingLog.find(params[:id])
    team_comments = ""
    @billing_log.billable_totals.each do |billable_total|
      team_comments += (billable_total.user_name + ' - ' + billable_total.comments + '\n')
    end
    @billing_log.team_notes = team_comments
end

以下是表单中的片段。

  = simple_form_for @billing_log do |f|
    .row
      .span8
        = f.input :team_notes, :as => :text, :input_html => { :class => 'input-block-level', :rows => '6' }

我无法在文本字段的单独行中显示每个注释的文本。相反,它们用' \ n'表示,例如,

First Comment\nSecond Comment

我希望它们显示为:

First Comment
Second Comment

我尝试过替换

'<br/>'

而不是

'\n'

在我的编辑方法代码中,如下所示:

  team_comments += (billable_total.user_name + ' - ' + billable_total.comments + '<br/>')

但这也不起作用。

感谢您的提前时间。

2 个答案:

答案 0 :(得分:0)

使用HTML标记时,只需确保ruby字符串附加.html_safe ,除非字符串可能为nil。如果is可以是nil,则将字符串包装并添加raw()

所以在你的情况下,要么

(billable_total.user_name + ' - ' + billable_total.comments + '<br/>').html_safe

raw(billable_total.user_name + ' - ' + billable_total.comments + '<br/>')

您还not需要使用黑名单br结束您的/代码,因此只需使用<br> - W3Schools

答案 1 :(得分:0)

您不能在文本字段中放置换行符(这是输入助手生成的内容)。您应该使用text_area帮助程序。