在ruby-on-rails中编辑多对多联结表

时间:2017-03-07 10:38:00

标签: ruby-on-rails ruby

用户可以选择在他们的页面上形成他们想要销售的商品的集合列表,并且还可以为每个商品设置每单位的价格。

使用的模型看起来像这样: user,user_product_category,product_category

如上所述,我有三个模型,user_product_category模型有一个名为" price"

的列

用户模型如下所示:

has_many :user_product_category
has_many :product_category through: :user_product_category

数据库有一个"用户名"列。

至于user_product_category模型:

belongs_to :users
belongs_to :product_category

数据库包含以下列:

user_id, :integer
product_category_id, :integer
price, :integer

对于product_category模型:

has_many :user_product_category
has_many :users through: :user_product_category

它有一个"名称"柱

  1. 显示使用ProductCategories.all
  2. 为用户选择的所有项目的复选框

    2.创建每个复选框旁边的文本字段,以允许用户为他们选择的每个项目设置价格

    3.当您单击更新按钮时,为user_product_category控制器设置了参数。并且控制器执行以下操作: 为已检查的项目创建联结表 删除已检查的项目的表格,但不再删除 验证price_fields

    例如,

    假设我们有用户A和id为user_id = 1 我们有可选择的项目:

    • ITEM1(ID = 1)

    • ITEM2(ID = 2)

    • 项目3(ID = 3)

    用户首先检查item1,并将价格设置为10美元 ↓ 在user_product_category中创建一个表:

    id=1 
    user_id=1 
    product_categories_id=1 
    price=1000
    

    然后用户A取消选中项目1,并检查项目2和3.将两个价格设置为12美元。点击更新

    user_product_category表中的

    : 删除id = 1的记录,并创建id = 2和id = 3的记录

    id=2 
    user_id=1 
    product_categories_id=2 
    price=1200
    
    id=3 
    user_id=1 
    product_categories_id=3 
    price=1200
    

    我似乎无法弄清楚如何使这项工作。如何设置强参数以验证价格字段? 我错过了一些关键的东西吗 如果有人能帮助我,那将会更加重要。

0 个答案:

没有答案