Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如果字段_中的块正在呈现HTML转义隐藏字段_Ruby_Ruby On Rails 3_Haml - Fatal编程技术网

Ruby 如果字段_中的块正在呈现HTML转义隐藏字段

Ruby 如果字段_中的块正在呈现HTML转义隐藏字段,ruby,ruby-on-rails-3,haml,Ruby,Ruby On Rails 3,Haml,这是一个带有HAML的Rails 3应用程序。 我有以下资料: = f.fields_for :bar_memberships do |bar_membership_fields| = 'FIELD' 我已经概括了这个问题。此代码打印: 领域 领域 领域 正如所料 但以下代码: = f.fields_for :bar_memberships do |bar_membership_fields| - if bar_membership_fields.object.new_record?

这是一个带有HAML的Rails 3应用程序。 我有以下资料:

= f.fields_for :bar_memberships do |bar_membership_fields|
  = 'FIELD'
我已经概括了这个问题。此代码打印: 领域 领域 领域 正如所料

但以下代码:

= f.fields_for :bar_memberships do |bar_membership_fields|
  - if bar_membership_fields.object.new_record?
    = 'FIELD'
= f.fields_for :bar_memberships do |bar_membership_fields|
  - if bar_membership_fields.object.new_record?
    = 'FIELD'
在源代码中呈现大量HTML转义隐藏输入,并在页面上显示它们

'<input id="person_bar_memberships_attributes_0_id" name="person[bar_memberships_attributes][0][id]" type="hidden" value="824" />
<input id="person_bar_memberships_attributes_1_id" name="person[bar_memberships_attributes][1][id]" type="hidden" value="825" />'
FIELD
'
'
领域

有什么想法吗?

我修正了以下代码:

= f.fields_for :bar_memberships do |bar_membership_fields|
  - if bar_membership_fields.object.new_record?
    = 'FIELD'
= f.fields_for :bar_memberships do |bar_membership_fields|
  - if bar_membership_fields.object.new_record?
    = 'FIELD'
通过这样做:

= f.fields_for :bar_memberships do |bar_membership_fields|
  = ""
  - if bar_membership_fields.object.new_record?
    = 'FIELD'

如果有人知道原因,请告诉我。

您必须在块的
字段中返回除
nil
以外的内容

:

助手的
#fields_为每条记录生成一个隐藏的输入字段,并将其添加到捕获块的结果中。通常,
capture
的返回值将是一个
SafeBuffer
,因此它不会被转义。但是,如果块没有向缓冲区写入任何内容,那么Haml将从
capture
返回一个文本空
String
。隐藏的输入元素被合并到这个字符串中,当它与其余的条目组合时,由于它是一个
字符串
被添加到
安全缓冲区
,所以它被转义