【问题标题】:Remove newline in textarea generated by HAML / Form Builder删除 HAML / Form Builder 生成的 textarea 中的换行符
【发布时间】:2017-03-29 21:17:21
【问题描述】:

我有一个非常简单的 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>

其中的空格是换行符:

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

我在保存时去掉了前导和尾随空格,所以数据方面,这没什么大不了的,但是当用户单击此字段时,它会显示为缩进。

相关软件版本:

  • Rails 5.02
  • haml-4.0.7
  • 文本区域位于 bootstrap 3 对话框中

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

【问题讨论】:

  • 如果显式将值设置为nil 或空字符串会怎样?
  • 值为 nil。空字符串具有相同的行为。
  • 我明白了,我在 slim 上试过了,猜想它们在每种情况下的工作方式都不一样。

标签: html ruby-on-rails twitter-bootstrap haml


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    相关资源
    最近更新 更多