如何在Ecto模型(或Elixir结构)上实现setter

时间:2014-12-31 10:31:21

标签: elixir ecto

我来自Rails思维模式,我习惯于向ActiveRecord模型添加大量的setter来修剪/小写字符串(例如电子邮件地址)或规范化电话号码以使用“ - ”作为分隔符。我喜欢setter方法,因为它保留了修改记录DRY的代码。这可能与Elixir / Ecto有关吗?

1 个答案:

答案 0 :(得分:4)

目前,没有机制。您可以做的最好的事情是创建一个像:

这样的函数
User.normalize(%User{}, conn.params["user"])

目前,我们计划将此代码移至自定义类型。例如,您实现了一个知道如何正确转换和规范化数据的电子邮件类型,并且在分配字段值时,转换将适用于Ecto查询。