我需要拯救一群没有复制的电影相关的人。
让我们以电影Inglourious Basterds为例。
昆汀·塔伦蒂诺在这里有很多角色。
下面是一个rspec测试的示例
Movie.find_by_title("Inglourious Basterds").actors.map(&:name).should include("Quentin Tarantino")
Movie.find_by_title("Inglourious Basterds").writers.map(&:name).should include("Quentin Tarantino")
Movie.find_by_title("Inglourious Basterds").directors.map(&:name).should include("Quentin Tarantino")我应该如何建立模型之间的关系?
发布于 2011-01-12 02:07:49
这是rails要做的一组相当简单的模型。
rails g model movie name:string
rails g model person name:string
rails g model movie_role movie:belongs_to person:belongs_to role:string对于示范协会而言:
class Person < ActiveRecord::Base
has_many :movie_roles
has_many :movies, :through => :movie_roles
end
class Movie < ActiveRecord::Base
%w(actor director writer).each do |type|
base = "#{type}_movie_roles"
has_many base, :conditions => { :role => type }, :class_name => 'MovieRole'
has_many type.pluralize, :through => base, :source => :person
end
endhttps://stackoverflow.com/questions/4664559
复制相似问题