2010-12-23 131 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