首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails中设置模型关联-“从孙子那一边”

在Rails中设置模型关联-“从孙子那一边”
EN

Stack Overflow用户
提问于 2011-07-29 00:53:51
回答 1查看 186关注 0票数 1

我是Ruby新手,所以请原谅其中的一些是完全无知的。我想设立以下协会:

Composition

  • Composition的
  • 转录有许多转录,属于艺术家
  • 的有很多的构图(和通过构图的转录)

我不想有任何独立的形式来创作作品和艺术家。用户只需创建转录-形式的转录有文字字段,堡垒艺术家和构图和数据库条目应该动态创建(如果他们还不存在)。

我该怎么做模特?我应该在转录中使用虚拟属性吗?

代码语言:javascript
复制
# 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创作作文?

任何帮助都很感激!提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-29 02:03:06

你不能设定艺术家在转录,因为艺术家有很多的作品,而不是转录,你需要通过创作获得艺术家。我希望这段代码能更好地解释。

我很累,可能把事情搞砸了,但现在我们开始(没有测试):

代码语言:javascript
复制
# 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
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6867498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档