我有一個form_for,我希望x.textField中的任何值都以Upcase中的第一個字母出現(我正在討論編輯文本字段由db值預填的地方)。大寫f.text_field
5
A
回答
6
你可以利用它像這樣:
<%= form_for ... do |f| %>
<%= f.text_field :name, :value => f.object.name.capitalize %>
2
潘Thomakos的解決方案將工作,但如果你不希望有添加:value => f.object.name.capitalize
到每個文本字段的形式,你可以看看寫你自己的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 %>
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
3
你可以用CSS做這個...
= f.text_field :some_attribute, style: 'text-transform: capitalize;'
相關問題
- 1. 我如何設置f.text_field的值?
- 2. 如何將參數檢索到f.text_field?
- 3. 大會:小寫大寫
- 4. 如何讓f.text_field + 「<div>there is a error</div>」 工作
- 5. f.select和f.text_field在Rails中的一個對象上?
- 6. 大寫第一個字母大寫但不改變大寫
- 7. 區分大小寫區分大小寫還是全大寫?
- 8. 大寫和小寫
- 9. php大寫字母大寫字
- 10. python首字母大寫只有大寫
- 11. Python大寫和非大寫動畫
- 12. java中的大寫字母到大寫
- 13. pandoc - 禁用大寫減號的大寫
- 14. 使用javascript大寫首字母大寫
- 15. concat_ws和小寫和大寫
- 16. JavaScript替換小寫大寫
- 17. gettext大寫和小寫
- 18. 用大寫重寫Word
- 19. Java大寫,小寫問題
- 20. 隨機大寫 - 小寫
- 21. 大寫小寫字母
- 22. 小寫大寫轉換
- 23. 不能寫大寫M
- 24. PHP爆炸大寫小寫
- 25. 大寫字母,小寫字母,大寫的Ant屬性
- 26. 數組大寫。需要檢查大寫和小寫
- 27. Codeigniter URL區分大小寫問題IIS(大寫到小寫)
- 28. 按字符輸入值的反向大小寫(小寫/大寫)
- 29. 大寫charfield
- 30. 地址大寫
這是氣餒,因爲字段轉換邏輯應放置在模型中:「瘦控制器,胖模型」 – caesarsol 2015-02-03 13:02:46