form_forがあり、x.textField内のすべての値がUpcaseの最初の文字で表示されるようにします(テキストフィールドにdb値が事前に入力される編集について話します)。
5630 次
4 に答える
6
あなたはそれを次のように大文字にすることができます:
<%= form_for ... do |f| %>
<%= f.text_field :name, :value => f.object.name.capitalize %>
于 2011-02-09T22:30:26.427 に答える
2
:value => f.object.name.capitalize
Pan Thomakosのソリューションは機能しますが、フォームのすべてのテキストフィールドに追加する必要がない場合は、独自のFormBuilderの作成を検討できます。
これをロードパスのどこかに置きます。たとえば、lib/capitalizing_form_builder.rbなどです。
class CapitalizingFormBuilder < ActionView::Helpers::FormBuilder
def text_field(method, options = {})
@object || @template_object.instance_variable_get("@#{@object_name}")
options['value'] = @object.send(method).to_s.capitalize
@template.send(
"text_field",
@object_name,
method,
objectify_options(options))
super
end
end
使用法:
<% form_for(@post, :builder => CapitalizingFormBuilder) do |f| %>
<p>
<%= f.text_field :title %>
</p>
<p>
<%= f.text_field :description %>
</p>
<p>
<%= f.submit 'Update' %>
</p>
<% end %>
于 2011-02-09T22:55:30.837 に答える
0
以下のように、コントローラーの作成/更新アクションでこれを行うこともできます
def create
@user = User.new(params[:user])
@user.name = params[:user][:name].capitalize
if @user.save
#do something
else
#do something else
end
end
于 2013-08-13T10:28:40.097 に答える