覆盖has_many关系的模型名称

rec*_*nym 4 activerecord ruby-on-rails

如果有更优雅的方式,这将是很好的,给定这些模型:

@forum_topic = ForumTopic.find(1)
@forum_topic.forum_sub_topics.each do |fst|  #it would be nicer if one could just type @forum_topic.sub_topics.each...
  #
end
Run Code Online (Sandbox Code Playgroud)

在sub_topics前面包含forum_似乎是多余的,因为我知道我正在处理一个forum_topic.我可以将表/模型的名称更改为SubTopic,但这有点通用,可能会出现在应用程序的某个位置. 有没有办法覆盖在ForumTopic上为has_many关联创建的方法的名称?

楷模:

class ForumTopic...
  has_many :forum_sub_topics
end

class ForumSubTopic...
end
Run Code Online (Sandbox Code Playgroud)

答案就在这里啊.谢谢!:) http://guides.rubyonrails.org/association_basics.html

mbr*_*ing 7

试试这个:

has_many :sub_topics, :class_name => "ForumSubTopic"
Run Code Online (Sandbox Code Playgroud)