繁体   English   中英

使用不显示HTML内容的Helper [Ruby on Rails]

[英]Use of Helper not displaying HTML content [Ruby on Rails]

我正在尝试使用以下视图文件创建表单

<%= form_for :spec do |form| %>
<fieldset>
<legend><%= @title %></legend>

<%= text_field_for form, "first_name" %>
<%= text_field_for form, "last_name" %>
<div class="form_row">
<label for="gender">Gender: </label>
<%= radio_button :spec, :gender, "Male" %> Male
<%= radio_button :spec, :gender, "Female" %> Female
<%= radio_button :spec, :gender, "Other" %> Other
</div>
<div class="form_row">
<label for="birthdate">Birthdate:</label>
<%= date_select :spec, :birthdate,
            :start_year => Spec::START_YEAR,
            :end_year => Time.now.year,
            :include_blank => true,
            :order => [:month,:day,:year] %>
</div>
<%= text_field_for form, "occupation" %>
<%= text_field_for form, "city" %>
<%= text_field_for form, "state" %>
<%= text_field_for form, "zip_code", Spec::ZIP_CODE_LENGTH %>

<%= submit_tag "Update", :class => "submit" %>
</fieldset>


<%end%>

我正在使用以下辅助方法

def text_field_for (form, field, 
            size=HTML_TEXT_FIELD_SIZE, 
            maxlength=DB_STRING_MAX_LENGTH)
    label = content_tag("label","#{field.humanize}:", :for => field)
    form_field = form.text_field field, :size => size, :maxlength => maxlength
    content_tag("div", "#{label} #{form_field}", :class => "form_row")
end

但是,我的输出给出了HTML代码,用于

<label for="first_name">First name:</label> <input id="spec_first_name" maxlength="255" name="spec[first_name]" size="15" type="text" />
<label for="last_name">Last name:</label> <input id="spec_last_name" maxlength="255" name="spec[last_name]" size="15" type="text" />

而不是文本字段和标签

有人可以为此建议解决方案吗?

更新text_field_for方法,如下所示:

def text_field_for (form, field, 
            size=HTML_TEXT_FIELD_SIZE, 
            maxlength=DB_STRING_MAX_LENGTH)
    label = content_tag("label","#{field.humanize}:", :for => field)
    form_field = form.text_field field, :size => size, :maxlength => maxlength
    content_tag "div", label + form_field,  :class => "form_row" 
end

您将labelform_field视为String。 您不应该对它们进行插值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM