什么是规范的Rails方式收集&存储实体或邮寄地址?

时间:2010-10-20 00:05:31

标签: ruby-on-rails

我需要在Rails(2.3)应用程序中收集和存储邮件地址。是否有Rails方式来发送邮件地址?例如,我会f.date_select生成一系列下拉列表来处理日期,然后将其存储在数据库中,我在模式和迁移中将其定义为t.datetime "foo"。我会考虑规范的Rails处理日期的方式,并且好奇是否有物理地址,邮政编码等模拟。

3 个答案:

答案 0 :(得分:7)

没有设置系统或帮助器,因为与日期选择器不同,它比看起来更复杂,收集地址信息非常简单。但是,如果您需要在应用程序中收集地址信息并将其附加到多个内容中,则可以使用多态关联,嵌套属性和共享视图的组合。

我在博文中给出了一个基本的例子和完整的解释:

http://kconrails.com/2010/10/19/common-addresses-using-polymorphism-and-nested-attributes-in-rails/

起初看起来可能令人生畏,但它真的很简单。好处是您的地址在应用中的所有视图中都是统一的。每个具有地址的对象都具有完全相同的设置,即使您将来更改地址也是如此。

我认为这最终是你要找的。我希望它有所帮助!

答案 1 :(得分:2)

没有。地址,邮政编码等......只被视为字符串/整数。没有特定于数据库的类型可以映射到这些项目,也没有针对这些项目的特定于类的类。

我也不熟悉任何ActiveSupport(使用b Rails的库)对邮件地址的支持,但我可能在这里错了。

如果您搜索可能找到的Gems,则可以更轻松地使用这些项目。

答案 2 :(得分:2)

我已开始研究这个问题 - 在国际层面上,地址并不简单。到目前为止,我已经找到了几个宝石:

即使您最终没有使用任何这些宝石,也可能值得研究它们如何存储地址的不同部分。一般的共识是有一个多态地址表,但是你需要有哪些列的变化。

本文提供了一些示例,说明您可以根据需要在不同国家/地区处理表单的具体或通用的不同方法,提及您在不同地区(甚至在特定国家/地区内)可能遇到的一些不一致之处:{{3 }}

例如,您不希望将邮政编码设为必填字段,因为并非所有国家/地区都有。根据您想要的复杂程度,您可能希望先询问该国家/地区,并根据该问题的答案采用不同的形式。有一篇关于避免含糊不清的博文,特别是关于地址第1行和地址第2行字段:http://www.uxmatters.com/mt/archives/2008/06/international-address-fields-in-web-forms.php