2014-04-07 51 views
0

我尝试使用下面的视图文件助手不显示HTML内容的使用[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%> 

创建一个表单,我使用下列helper方法

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 

然而,我的输出给出

<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" /> 

文本框,而不是HTML代码和标签

任何人都可以为此提出解决方案吗?

回答

1

更新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。你不应该插入它们。

+0

看上去相同:/ – Krishna

+0

您是否照原样复制?它既可以作为块,也可以当前编辑的答案。 –

+0

我将辅助程序更新到了控制器特定的帮助程序文件中,而不是在常用的应用程序帮助程序中。有效!谢谢 – Krishna