我用Rails 3.1和Mongoid。將我的模型的字段保存爲小寫字母的正確方法是什麼?我在Mongoid文檔中沒有看到這一點,但我想知道是否有一種我應該知道的乾淨方式。非常感謝。Rails3中/ Mongoid - 保存模型爲小寫
0
A
回答
3
行,所以我閱讀文檔更徹底,這是我應該做開始。現在這對我有效。
在model.rb:
...
before_create :drop_the_case
protected
def drop_the_case
self.MYMODELFIELD = self.MYMODELFIELD.downcase
end
「drop_the_case」 是這個我自己的任意名稱。
謝謝。
1
在你的模型,你可以使用
def before_save
self.your_model_field = your_model_field.downcase
end
或
def before_save
self.your_model_field.downcase!
end
1
與before_create
回調接受的答案有一些大問題,特別是如果您使用某些約束如validates_uniqueness_of
。如有可能,請使用before_validation
回撥。
class Safe
include Mongoid::Document
field :foo, type: String
validates_uniqueness_of :foo
before_validation :drop_the_case
protected
def drop_the_case
self.foo = self.foo.downcase
end
end
class Dangerous
include Mongoid::Document
field :foo, type: String
validates_uniqueness_of :foo
before_create :drop_the_case
protected
def drop_the_case
self.foo = self.foo.downcase
end
end
dangerous = Dangerous.create!(name: 'BAR')
safe = Safe.create!(name: 'BAR')
dangerous.update(name: 'BAR') # dangerous.name => BAR
safe.update(name: 'BAR') # safe.name => bar
Dangerous.create!(name: 'BAR') # => true, unique constraint ignored
Safe.create!(name: 'BAR') # throws exception
相關問題
- 1. 保存mongoid模型
- 2. 如何爲嵌入式Mongoid模型創建Rails3表單?
- 3. Mongoid:保存父模型不會保存HAS_ONE例如
- 4. rails3/mongoid/heroku/mongohq
- 5. Rails3/Mongoid驗證未運行
- 6. 如何在mongoid模型中保存數組的數組?
- 7. 模型進行保存,但ID爲nil在Rails3中與Oracle增強適配器
- 8. 如何將Mongoid foreign_key保存爲整數或保留父模型有Integer id
- 9. mvc大寫模型vs小寫模型
- 10. 在Rails3中嵌套模型
- 11. 不能保存模型來說,如果我填寫小數場
- 12. 在mongoid中保存embeds_many
- 13. rails3模型問題
- 14. Mongoid 2.5。保存模型到另一個數據庫
- 15. MySQL將表名保存爲小寫
- 16. 在模型中保存模型
- 17. 模型保存方法。保存前調整圖像大小
- 18. 在tensorflow中保存模型
- 19. 保存在模型中
- 20. FactoryGirl.create不保存Mongoid關係
- 21. rails3模型重定向
- 22. Tensorflow - 保存模型
- 23. 保存belongsTo模型
- 24. 如何保存工作mongoID
- 25. 保存嵌入文檔mongoid
- 26. Rails3:gem Gmap4rails與mongoid不顯示地圖
- 27. 將JavaScript變量保存爲Rails模型
- 28. 將元組保存爲django模型
- 29. 如何爲Python TextBlob保存模型?
- 30. 將Rails模型保存爲JSON
您還可以將case_sensitive:false添加到唯一性驗證。例如: validates_uniqueness_of:foo,:case_sensitive => false –