删除由 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,因此在数据方面,这没什么大不了的,但是当用户单击此字段时,它会出现缩进。
相关软件版本:
- Rails 5.02
- haml-4.0.7
- 文本区域在 bootstrap 3 对话框中
为什么会生成这个换行符,我该如何停止它?
这不是一个理想的答案,但确实有效。我想要更好的东西:
= 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'
我有一个非常简单的 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,因此在数据方面,这没什么大不了的,但是当用户单击此字段时,它会出现缩进。
相关软件版本:
- Rails 5.02
- haml-4.0.7
- 文本区域在 bootstrap 3 对话框中
为什么会生成这个换行符,我该如何停止它?
这不是一个理想的答案,但确实有效。我想要更好的东西:
= 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'