0

私はRubyonRailsで働いており、製品とブランドを持っています。ブランドにいるときは、そのブランドに属する新しい製品を作成したいので、link_toを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

このように、別のコントローラを使用して brand: 内で製品を作成できます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 に答える