2015-03-30 54 views
1

我为我的ORM使用Rails 4和Sequel。我希望对传入值进行一些基本的规范化处理,例如使套管一致(Malemale)并映射到规范值(USAUS)。我应该在哪里做这件事? Sequel是否提供了价值规范化挂钩?或者我应该在Rails控制器中完成它?Rails和Sequel中的值规范化有哪些工具可用?

我目前使用around_save Sequel :: Model钩子,但Sequel文档没有讨论值标准化,所以我不确定这是否是一个很好的地方。

class People < Sequel::Model 
    def before_save 
    normalize_gender 
    super 
    end 

    private 
    def normalize_gender 
    if self.gender.nil? 
     self.gender = '' 
     return; 
    end 

    self.gender.downcase! 

    self.gender = 'male' if self.gender == 'm' 
    self.gender = 'female' if self.gender == 'f' 

    return 
    end 
end 

我对MVC很熟悉,但没有专门用Rails和Sequel。我正在寻找这些工具中现有的钩子和技术,而不是关于值归一化应该在哪里进行的一般性讨论。

+0

有很多答案,这样使你会产生意见或广泛的答案。我建议阅读更多关于MVC,看看它是否变得更清晰。 – 2015-03-30 20:12:42

+0

@theTinMan我熟悉MVC模型,但我不熟悉Rails和Sequel的细节。我正在寻找首选的方法和现有的钩子和技术。续集文档不讨论价值标准化。我已经编辑了这个问题来说明问题,我不是在寻找一个广泛的讨论,只是在这些工具中有什么。 – Schwern 2015-03-30 20:33:05

+1

对于续集中的内容,我建议在Sequel IRC或邮件列表上提问。作者挂在那里,可以在短时间内回复所有内容。他非常敏感。他偶尔会在这里回答,但如果你很快需要信息,你最好去哪里。而且,在这一点上,一件好事将是为你的问题创建一个答案,总结你发现的内容。 – 2015-03-31 17:21:51

回答

1
+0

谢谢,这对于修剪空白和规范化编码等通用事物看起来很有用。嘿,续集与你合作非常美丽。你可以评论做每列正常化和我使用'before_save'吗? – Schwern 2015-04-01 20:45:51

+1

对于每列标准化,我只是重写setter方法(People#gender =)来做你想做的事情,这是一个更简单的方法。 – 2015-04-02 15:12:08