我在Ruby on Rails工作,我有一个产品和品牌,当我在一个品牌中我想要创建一个属于该品牌的新产品时,我想要link_to与brand_id。 我怎么能这样做?
<%= link_to 'New Product', new_product_path, :class => 'btn btn-primary'%>
品牌模型
has_many :products, :dependent => :destroy
产品型号
belongs_to :brand
答案 0 :(得分: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|