0

我在Ruby on Rails 工作,我有一个产品和品牌,当我在一个品牌中时,我想创建一个属于该品牌的新产品,然后我想用brand_id 链接到。我怎样才能做到这一点?

<%= link_to 'New Product', new_product_path, :class => 'btn btn-primary'%>

品牌型号

has_many :products, :dependent => :destroy

产品型号

  belongs_to :brand
4

1 回答 1

0

路线:

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|
于 2012-08-20T13:10:01.013 回答