我是 Rails 新手,正在开发一个简单的应用程序。我的 ERD 中有一个名为 Client 的模型,并且希望保存每个客户的地址。
我最初的想法是将地址保存为单独的字段,即:
rails g model Client address_first:string address_second:string city:string ...
但这似乎效率很低。我确信一定有一种方法可以将地址保存为哈希、数组或者 JSON?我读过周围的内容,人们一直提到使用“序列化”,但我不确定是否以及如何在地址字段中实现它。
非常感激任何的帮助。
Thanks
这取决于您使用的数据库 - MySQL 和 Postgres 都有 JSON 列类型 - Postgres 还有一个名为 hstore 的哈希类型。
他们还有不同的选项用于在 hash/json 列内查询。虽然这些数据类型非常适合动态数据,但没有真正的性能提升(实际上可能会更慢)。
并且您不能将对象映射、验证等所有 Rails 优点用于存储在 hstore/json 列中的属性。
当谈到地址时,每个人都会天真地将其放入用户(或客户或客户)模型中,结果却发现在现实世界中您需要多个地址。
# == Schema Information
#
# Table name: clients
#
# id :integer not null, primary key
# created_at :datetime not null
# updated_at :datetime not null
#
class Client < ActiveRecord::Base
has_many :addresses
end
# == Schema Information
#
# Table name: addresses
#
# id :integer not null, primary key
# address_first :string
# address_second :string
# street :string
# city :string
# country :string
# client_id :integer
# created_at :datetime not null
# updated_at :datetime not null
#
class Address < ActiveRecord::Base
belongs_to :client
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)