我想要一个“联系人”表单,允许用户同时输入他们的个人和工作电子邮件。我可以想象有两种方法可以做到这一点,但不确定它们是否是最佳的,并且可能缺少 Rails 的这样做方式:
- 让嵌套表单创建两次电子邮件模型,但为 :position 添加一个标志以识别它们。(隐藏字段这样做?)
- 设置一个将 :personal_email 和 :work_email 映射到 Email 模型的委托,以便模型单独处理它们。
- 还有什么?
目前我的电子邮件设置如下:
class Individual < ActiveRecord::Base
attr_accessible :first_name, ...
has_many :emails
#delegate :personal_email, :to => :email, :allow_nil => true
end
class Email < ActiveRecord::Base
attr_accessible :email_address, :owner_id, :owner_klass, :position, :verified, :email_type
belongs_to :individual
# WIP Returns 'primary' email for a user
def personal_email
end
end