Tôi có một có rất nhiều thông qua mối quan hệ trong ứng dụng của tôi:find_or_create trên có rất nhiều thông qua mối quan hệ
Hiển có nhiều Bands qua =>Đội hình ra sân
Bands là duy nhất bởi: name
class Show < ActiveRecord::Base
attr_accessible :city_id, :title, :dateonly, :timeonly, :image, :canceled, :venue_attributes, :bands_attributes
belongs_to :city
belongs_to :venue
has_many :lineups
has_many :bands, through: :lineups
has_and_belongs_to_many :users
end
class Lineup < ActiveRecord::Base
belongs_to :show
belongs_to :band
end
class Band < ActiveRecord::Base
attr_accessible :name, :website, :country, :state
has_many :lineups
has_many :shows, through: :lineups
validates :name, presence: true
validates_uniqueness_of :name
before_save :titleize_name
private
def titleize_name
self.name = self.name.titleize
end
end
Ban nhạc mới được tạo như thế này:
(cho phép nói chúng tôi có một kỷ lục chương trình đã được lưu gọi là s1)
> s1.bands.new(name: "Wet Food")
> s1.save
Ngay bây giờ điều này sẽ chỉ tiết kiệm nếu một ban nhạc có tên là "Wet Thực phẩm" không tồn tại
Trong đó mô hình là nơi tốt nhất để làm một Band.find_or_create trong mối quan hệ này để một ban nhạc hiện có có thể được sử dụng nếu một người có cùng tên tồn tại?
bạn sẽ sử dụng ban nhạc hiện tại bằng cách sử dụng Band.find_or_create? và cố gắng sử dụng Band.where (tên: 'Wet Food'). first_or_create thay vì Band.find_or_create. – Kuldeep
đội hình chứa band_id vì vậy tôi đoán ở đó? – wiredin
vì vậy dòng sản phẩm giống như hiệu suất, một ban nhạc thực hiện một lần cho mỗi chương trình. một chương trình có nhiều buổi biểu diễn cho mỗi chương trình. –