form_for的部分人工属性名称

时间:2015-05-29 17:32:01

标签: ruby-on-rails ruby-on-rails-4

我有一个共享的部分,我在各种form_for标签中使用如下:

<%= render 'shared/text_field_attribute', :f => f, :attribute => :some_attr, :predicate => 'is/starts with/ends with/etc.' %>

app / views / shared / text_field_attribute.html.erb如下所示:

<div class="form-group">
  <%= f.label attribute, "#{attribute} #{predicate}", class: 'sr-only' %>
  <%= f.text_field attribute, class: 'form-control', placeholder: "#{f.object.class.human_attribute_name(attribute)} #{predicate}…" %>
</div>

有没有更简洁的方法来获取人类属性名称?

f.object.class.human_attribute_name(attribute)

2 个答案:

答案 0 :(得分:0)

而不是:

f.object.class.human_attribute_name(attribute)

您可以使用humanize方法,如下所示:

attribute.to_s.humanize

答案 1 :(得分:0)

如果你说的是,你正在以各种形式使用它,我建议创建一个帮助器(http://api.rubyonrails.org/classes/ActionController/Helpers.html)。

在帮助程序中,您可以选择:仅输入 text_field ,或同时输入标签 text_field