link_to new_product,品牌ID为RoR

时间:2012-08-20 13:05:23

标签: ruby-on-rails

我在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

1 个答案:

答案 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|