如何根据Rails中的字段名称自动生成占位符文本?

时间:2012-12-30 22:16:49

标签: ruby-on-rails ruby-on-rails-3

我有一个可重复使用的字段模板,名为_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)

1 个答案:

答案 0 :(得分: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)

如前所述,您应该查看可用的表单构建器。他们抽象了很多与制作漂亮表格相关的痛苦。一些链接是: