删除由 HAML / Form Builder 生成的文本区域中的换行符

Remove newline in textarea generated by HAML / Form Builder

我有一个非常简单的 Rails 表格。:

= form_for @object :remote => true do |form|
   = form.text_area :text, :class => 'form-control'

对于文本属性为 nil 的新对象,生成:

<textarea class="form-control" name="object[text]" id="object_text"> </textarea>

里面的空格space是一个换行符:

(byebug) form.text_area :text, :class => 'form-control'
"<textarea class=\"form-control\" name=\"user_deactivation[reason_text]\" id=\"user_deactivation_reason_text\">\n</textarea>"

我在保存时删除了前导和尾随 spaces,因此在数据方面,这没什么大不了的,但是当用户单击此字段时,它会出现缩进。

相关软件版本:

为什么会生成这个换行符,我该如何停止它?

这不是一个理想的答案,但确实有效。我想要更好的东西:

 = find_and_preserve(form.text_area :text, :class => 'form-control')

可以自动吗?有没有办法让 text_area 助手不插入换行符?

您可以使用“~”运算符,它类似于“=”运算符,但会自动在输出上运行 find_and_preserve。

像这样: = form_for @object :remote => true do |form| ~ form.text_area :text, :class => 'form-control'