我是Ruby新手,所以请原谅其中的一些是完全无知的。我想设立以下协会:
Composition
。
我不想有任何独立的形式来创作作品和艺术家。用户只需创建转录-形式的转录有文字字段,堡垒艺术家和构图和数据库条目应该动态创建(如果他们还不存在)。
我该怎么做模特?我应该在转录中使用虚拟属性吗?
# transcription.rb
def artist_name
artist.name if self.artist
end
def artist_name=(name)
self.artist = Artist.find_or_create_by_name(name) unless name.blank?
end 然后用我以前找到或创作过的艺术家用find_or_create_by_name创作作文?
任何帮助都很感激!提前感谢
发布于 2011-07-29 02:03:06
你不能设定艺术家在转录,因为艺术家有很多的作品,而不是转录,你需要通过创作获得艺术家。我希望这段代码能更好地解释。
我很累,可能把事情搞砸了,但现在我们开始(没有测试):
# transcription.rb
attr_writer :composition_name, :artist_name
before_save :set_artist_and_composition
validates_presence_of :artist_name, :composition_name
def composition_name
composition.name
end
def artist_name
composition.artist.name
end
def set_artist_and_composition
artist = Artist.find_or_create_by_name(@artist_name)
self.composition = Composition.find_or_create_by_name(@composition_name)
self.composition.artist = artist
endhttps://stackoverflow.com/questions/6867498
复制相似问题