Giả sử tôi có hai mô hình, Đạo diễn và Phim và mô hình tham gia thứ ba có tên là Chỉ đường. Chúng được định nghĩa như vậy:Tạo hoặc cập nhật liên kết với has_many: thông qua
Movie:
class Movie < ActiveRecord::Base
has_many :directions
has_many :directors, :through => :directions
end
Giám đốc:
class Director < ActiveRecord::Base
has_many :directions
has_many :movies, :through => :directions
end
Dẫn:
class Direction < ActiveRecord::Base
belongs_to :movie
belongs_to :director
end
Khi Tôi tạo một bộ phim mà tôi muốn có thể tạo một đạo diễn với thông tin được cung cấp (tên và imdb_id) hoặc tìm một đạo diễn hiện có dựa trên imdb_id và liên kết nó với bản ghi Phim.
Về cơ bản, tôi không muốn xóa hoặc chỉnh sửa đạo diễn. Tôi chỉ muốn có thể tạo ra một đạo diễn mới nếu anh ấy không tồn tại dựa trên imdb_id của anh ấy, hoặc liên kết với một đạo diễn đã có từ trước khi tôi tạo hoặc chỉnh sửa phim.
Câu hỏi của tôi là, làm cách nào để liên kết tất cả điều này trong chế độ xem/bộ điều khiển?
accepts_nested_attributes_for hoạt động tốt trừ bạn thực sự có thể chỉnh sửa tên của đạo diễn khi bạn đang chỉnh sửa một bộ phim mà tôi không muốn. Tôi hoàn toàn không quan tâm đến việc cập nhật/phá hủy các giám đốc thực tế, chỉ có các hiệp hội.
Xin cảm ơn, điều đó giúp tôi đi đến đó. Tôi cuối cùng sẽ có một vài đạo diễn (trong hàng trăm) để hiển thị tất cả chúng sẽ không hoạt động nhưng tôi có thể khắc phục điều đó bằng một số phép thuật tìm kiếm AJAX. Tôi có một trường hợp sử dụng cụ thể mà tôi không chắc chắn cách triển khai. Giả sử tôi tạo một bộ phim với đạo diễn Steven Spielberg. Sau đó, tôi nhận ra anh ta không thực sự chỉ đạo nó nhưng James Cameron đã làm và tôi không có James Cameron trong DB được nêu ra. Với giải pháp của bạn, tôi có thể bỏ chọn Steven Spielberg nhưng làm cách nào để thêm James Cameron vào và tạo ra bản ghi và liên kết của Giám đốc DB? Cảm ơn! –