我在Ruby on Rails 工作,我有一个产品和品牌,当我在一个品牌中时,我想创建一个属于该品牌的新产品,然后我想用brand_id 链接到。我怎样才能做到这一点?
<%= link_to 'New Product', new_product_path, :class => 'btn btn-primary'%>
品牌型号
has_many :products, :dependent => :destroy
产品型号
belongs_to :brand
我在Ruby on Rails 工作,我有一个产品和品牌,当我在一个品牌中时,我想创建一个属于该品牌的新产品,然后我想用brand_id 链接到。我怎样才能做到这一点?
<%= link_to 'New Product', new_product_path, :class => 'btn btn-primary'%>
品牌型号
has_many :products, :dependent => :destroy
产品型号
belongs_to :brand
路线:
resources :brands do
resources :products
end
链接:
link_to "New product", new_brand_product_path(@brand), class: "btn"
如果您可以在品牌之外创建产品,您可能希望在您的路线中使用范围:
resources :brands do
scope module: "brand_scope" do
resources :products
end
end
这样,您可以拥有一个单独的控制器来在品牌内创建产品:app/controllers/brand_scope/products_controller.rb
,但路径 ( new_brand_product_path(@brand)
) 仍然相同。
在产品控制器中,new
操作:
@brand = Brand.find(params[:brand_id])
@product = Product.new
在views/brand_scope/products/_new.html.erb
:
form_for [@brand, @product] do |f|