Tôi đang tìm cách chỉnh sửa/thêm từ khóa liên quan đến một bài viết, nội dòng trong Activeadmin.Chỉnh sửa quan hệ nhiều-nhiều trong Activeadmin
tôi đã xác định một cách đơn giản nhiều-nhiều thiết lập:
class Area < ActiveRecord::Base
has_many :area_keywords
has_many :keywords, :through => :area_keywords
accepts_nested_attributes_for :keywords, :reject_if => :all_blank, :allow_destroy => true
end
class AreaKeyword < ActiveRecord::Base
belongs_to :area
belongs_to :keyword
end
class Keyword < ActiveRecord::Base
has_many :area_keywords
has_many :areas, :through => :area_keywords
end
Tôi muốn thêm và chỉnh sửa các từ khóa ở dạng en Diện tích, vì vậy tôi thiết lập này trong Aciveadmin:
ActiveAdmin.register Area do
form do |f|
f.inputs "Area details" do
f.input :title
f.input :description
end
f.has_many :keywords do |k|
if k.object.nil?
k.input :word, :label => 'Keyword'
else
k.input :word, :label => k.object.word
k.input :_destroy, :as => :boolean, :label => "delete"
end
end
end
end
Điều này hoạt động như mong đợi.
Nhưng nếu tôi thêm cùng một từ khóa vào hai khu vực khác nhau, từ khóa sẽ chỉ được tạo hai lần.
Khi nhập từ khóa mới (trong biểu mẫu Khu vực), tôi muốn nó tự động tạo mối quan hệ với từ khóa hiện tại hoặc tạo từ khóa mới, nếu từ khóa không tồn tại. Điều gì sẽ là cách tốt nhất để đi về nó?
Giải pháp rất hay.Cám ơn vì đã chia sẻ! Tôi đã sử dụng cả hai đá quý sau khi tôi đăng câu hỏi này, nhưng nó làm cho cảm giác tốt để sử dụng chúng với nhau như thế này. –
giải pháp tốt nhưng tôi muốn chọn một số tùy chọn mặc định. Cho phép nói trong quá trình cập nhật tôi muốn rằng các con hiện tại của tôi nên được chọn theo mặc định. Làm thế nào tôi có thể làm điều đó với select2. –
tôi đã thực hiện nó với: selected => IDS –