一种形式生成两个模型

时间:2014-03-21 02:32:45

标签: ruby-on-rails

我是rails的新手,我遇到了一个我找不到解决方案的问题。

我希望有一个单页表单,可以生成两个不同的模型。那可能吗? 例如,当用户按下提交按钮时,某些输入将用于生成用户模型,其他输入将用于生成药房模型。

提前致谢

2 个答案:

答案 0 :(得分:0)

您将使用form_for并传入父对象。然后,当您到达另一个对象的字段时,可以使用fields_for方法并传入另一个对象。然后在模型中,您可以执行以下操作:

def pharmacy_attributes=(attributes)
  @pharmacy = Pharmacy.create(attributes)
  self.pharmacy = @pharmacy
  save
end

如果您使用的是rails 4,则必须允许控制器中的嵌套属性,并将accepts_nested_attributes_for :pharmacy添加到用户模型中(如果这是您的关系设置方式)。

答案 1 :(得分:0)

查看以下代码气候博客文章:

http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/

特别感兴趣的是:" 3。提取表单对象"