【发布时间】:2018-12-20 22:56:07
【问题描述】:
我有 Rails 5.2.2,我正在尝试实现祖先 gem。
所以我想要什么:
我希望用户为汽车零件创建报价,但在新表单中,我希望能够选择类别/子类别,然后输入我拥有的其他详细信息,然后提交表单以创建提供。假设有人想添加销售刹车片。 但首先必须选择父类别。 例如
汽车->刹车->刹车片
所以在选择刹车片后,他可以创建报价。
我有什么:
#category.rb
class Category < ApplicationRecord
has_ancestry
has_many :parts
end
-
#part.rb
class Part < ApplicationRecord
belongs_to :category
end
目前,我已经在控制台中创建了一个以使其工作: 例如
car = Category.create!(name: "Car")
brakes = Category.create!(name: "Brakes", parent: car)
brake_pads = Category.create!(name: "Brake Pads", parent: brakes)
我也已经运行了迁移rails g migration add_category_to_parts category:references。
我的看法:
#views/parts/new.html.haml
.container
%h2.center Create offer
= simple_form_for(@part, html: {class: "form-group" }) do |f|
.form-group.col-md-8.col-md-offset-2.well
= f.input :title
= f.input :make_name, label: "Make"
= f.input :code, label: 'Part number'
= f.association :condition, label_method: :name, prompt: "-"
= f.input :description
.form-actions
= f.button :submit, class: "btn btn-primary btn-dark-blue"
问题是: 我如何在我的视图-> 部分-> new.html.haml 表单中呈现类别/子类别,其中包含 3 个下拉菜单(每个子类别一个,因为我将有很多类别/子类别),以便用户可以选择它们然后创建报价?
【问题讨论】:
-
您不想创建类别控制器的原因是什么?虽然您可以通过种子或控制台手动设置类别,但类别应该被视为它自己的资源(在我看来)。
-
嗨,马克,非常感谢您的回复。我想是因为一旦我不需要控制器来做其他事情,我就会创建类别,但我会创建一个。 (我编辑了我的问题:我想在 view->parts-> new.html.haml 中呈现类别/子类别)。如果我创建类别控制器,你知道如何在部分新表单中呈现这些吗?
标签: ruby-on-rails ruby ruby-on-rails-5 simple-form ancestry