0

我有一个可重用的字段模板,称为 _field.html.haml,它看起来像(在 haml 中):

= f.label field
= f.send(field_type, field, :class => field_type)

这样做的好处是可以从父表单模板中调用它并提供可重用性。这让我可以根据字段类型动态呈现表单字段。调用模板如下所示:

= form_for(@model) do |f|
  = render :partial => 'field', :locals => { :field => :first_name, :field_type => :text_field }
  = render :partial => 'field', :locals => { :field => :last_name, :field_type => :text_field }

如何将基于标签文本的占位符文本自动生成添加到此 _field.html.haml 模板?也许正确的问题是标签 hdlper 用于将字段名称转换为大写英文短语的代码是什么?

即代码看起来像:

= f.send(field_type, field, :class => field_type, :placeholder => #INSERT CODE HERE to get friendly placeholder text)
4

1 回答 1

2

label_tag方法使用“String#humanize”使其看起来更好(http://api.rubyonrails.org/classes/String.html#method-i-humanize)。所以在你的例子中你可以这样做:

= f.send(field_type, field, :class => field_type, :placeholder => field.to_s.humanize)

正如前面在评论中提到的,您应该看看可用的表单构建器。他们抽象出很多与制作漂亮表格相关的痛苦。一些链接是:

于 2012-12-31T11:24:52.553 回答