2012-01-30 26 views
0

我正在使用rails构建电子商务应用程序,并希望对我的模型关系有所帮助,以及如何使用信息填充表格。在导轨中的订单处理期间捕获地址信息

我有一个用户模型,订单模型和地址模型。我想在订购过程中在表单中捕获地址。 在我的订单模型中,我有user_id,pay_type,email,address_id和name。 在我的地址我有user_id,(然后一些地址字段)。

的关系

order belongs_to a user 

address belongs_to a user 

address belongs_to an order 

order has_one address 

user has_many orders 

user has_one address 

所以当客户点击结账,我希望他们进入的顺序,电子邮件,地址和paytype名称多数民众赞成。 user_id将通过隐藏字段使用当前登录的用户方法捕获。 (如果有更好的方法,请告诉我)。对不起,如果这不是很好解释

+0

请出示你到目前为止的代码。另外,通过一个隐藏的表单字段来设置'user_id'是一个非常糟糕的想法。它是完全不安全的并且允许任何人欺骗用户ID。而是使用会话来存储登录用户的user_id。 – 2012-01-30 12:32:37

+0

你希望看到哪部分代码?订单或地址的表单?我的控制器?我的模特? – 2012-01-30 13:04:35

回答

0

你需要看看accept_nested_attributes和嵌套形式。

或者只是看一些代码here,例如,

,这里要注意的主要事情是:

  • accepts_nested_attributes_for
  • f.fields_for :地址do | address |将需要渲染的嵌套形式
  • @ order.save控制器将保存所有嵌套数据