2010-12-23 118 views
1

我已經在rails應用上構建了一款ruby,允許用戶跟蹤他們的鍛鍊。我也允許他們(如博客)爲他們的鍛鍊創建標籤。當用戶在他們的鍛鍊中添加標籤時,他們通過auto_complete協助保持組織性。Ruby on Rails中的降級和升級

隨着網站的知名度越來越高,我因爲大寫而出現一些混亂/不一致的情況。有沒有辦法告訴應用程序只創建tag.name的大寫或小寫?

+0

ORM什麼是您使用? ActiveRecord的?續集?這個邏輯應該儘可能地接近數據庫,理想情況是在數據庫本身的存儲過程中,或者至少在模型的before_save鉤子中。 – Phrogz 2010-12-23 05:28:48

回答

6

試着這麼做:

class Tag < AR::Base 
    before_save :downcase_name 

    private 

    def downcase_name 
    self.name.downcase! 
    end 
end 
0

Ruby在String類上有一個upcasedowncase,它允許你做任何一個。只需在保存數據之前調用。

例如,如果您使用的是simple_auto_complete寶石,你可以做到以下幾點:

class BlogController < ApplicationController 
    autocomplete_for :post, :title do |items| 
     items.map {|x| x.upcase} 
    end 
end 

我現在不能測試此權利,所以請原諒我,如果有語法錯誤。

+0

我沒有使用那個gem,但是這個插件:https://github.com/rails/auto_complete。這會改變事情嗎? – bgadoci 2010-12-23 05:25:23