Pertanyaan has_many: melalui nested_form yang dapat membuat banyak instance


Saya memiliki kode berikut dalam model saya:

Class Farm < ActiveRecord::Base
  has_many :farm_products, :dependent => :destroy
  has_many :products, :through => :farm_products
  accepts_nested_attributes_for :farm_products
end

class Product < ActiveRecord::Base
  has_many :farm_products, :dependent => :destroy
  has_many :farms, :through => :farm_products
end

class FarmProduct < ActiveRecord::Base
  belongs_to :farm
  belongs_to :product
end

Saya memiliki formulir untuk membuat Farm baru, dan saya ingin membuat farm_products bersama dengan formulir ini. Tabel farm_products saya tidak hanya berisi bidang kunci asing. Bagaimana saya bisa menambah atau menghapus kolom bersarang melalui Javascript dan / atau JQuery?

UPD. Saya menemukan permata yang mengagumkan oleh nested_forms yang melakukan apa yang saya inginkan! Ini adalah kode dalam pandangan saya

= nested_form_for @farm, :html => { :multipart => true } do |f|
  = f.fields_for :farm_products do |fp|
-#fields goes here
     = fp.link_to_remove 'Remove this task'
     = fp.link_to_add "Add a task", :farm_products

Tapi ada kesalahan yang mengatakan

undefined method `klass' for nil:NilClass

Mungkin ada yang salah dengan hubungan saya, tetapi saya tidak dapat menemukan masalahnya.


4
2018-04-21 15:09


asal


Jawaban:


Itu link_to_add harus berada di luar fields_for memblokir, memanggil f objek bukan pada fp obyek.


7
2018-04-21 19:13