首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails问题:如何使用parents create表单中的选择下拉列表创建链接到父对象的多个子对象?

rails问题:如何使用parents create表单中的选择下拉列表创建链接到父对象的多个子对象?
EN

Stack Overflow用户
提问于 2010-03-30 17:59:21
回答 2查看 1.4K关注 0票数 1

在用rails编写的用于购买活动门票的预订引擎中,我有以下模型:

一份订单

一张票

一张订单有多张票,一张票属于一个活动。

想要预订活动门票的人通常会创建一个新订单。他们填写了一些详细信息(保存在订单模型中),最后看到一些下拉列表,他们可以在这些下拉列表中选择每种票证类型的票证数量(例如: VIP门票、学生门票等)。

屏幕截图可以在这里找到:

http://eerlings.com/orders.png

我想实现的是,当订单在数据库中创建时,对于每个票证类型,都有一个在数据库中创建的票证,链接到此订单。如果与会者在下拉列表中为VIP门票选择了"5“,为学生门票选择了"3”,则在数据库中总共应该创建了8张门票。

在rails中实现这一点的最佳方式是什么?有什么建议吗?

再见,皮特

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-17 04:34:56

VIP门票和学生门票可能会有不同的参数,例如

代码语言:javascript
复制
params = {
          :num_vip_tickets => 5,
          :vip_ticket => {
                          :event_id => 1,
                          :price => 250
                         },
          :num_student_tickets => 3,
          :student_ticket => {
                              :event_id => 1,
                              :price => 10
                             }
         }

我会在控制器中处理它。例如,使用一些假设名称:

代码语言:javascript
复制
if params[:num_vip_tickets]
  params[:num_vip_tickets].to_i.times {@order.tickets.create params[:vip_ticket]}
end

另一种方法是

代码语言:javascript
复制
class Order < ActiveRecord::Base
  has_many :tickets
  accepts_nested_attributes_for :tickets
end

class OrdersController < ApplicationController
  def create
    params[:order][:ticket_attributes] = []
    num_student_tickets = params[:num_student_tickets].to_i
    if num_student_tickets > 0
      params[:order][:tickets_attributes] += [params[:student_ticket]] * num_student_tickets
    end
    num_vip_tickets = params[:num_vip_tickets].to_i
    if num_vip_tickets > 0
      params[:order][:tickets_attributes] += [params[:vip_ticket]] * num_vip_tickets
    end
    @order = Order.new params[:order]
    # ... etc ...
  end
end
票数 1
EN

Stack Overflow用户

发布于 2010-12-17 04:23:13

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2544266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档