如果有更优雅的方式,这将是很好的,给定这些模型:
@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
在sub_topics前面包含forum_似乎是多余的,因为我知道我正在处理一个forum_topic。我可以将表/模型的名称更改为SubTopic,但这有点通用,可能会出现在应用程序的某个位置。 有没有办法覆盖在ForumTopic上为has_many关联创建的方法的名称?
型号:
class ForumTopic...
has_many :forum_sub_topics
end
class ForumSubTopic...
end
答案答案就在这里啊。谢谢! :)
http://guides.rubyonrails.org/association_basics.html
答案 0 :(得分:7)
试试这个:
has_many :sub_topics, :class_name => "ForumSubTopic"
答案 1 :(得分:3)
是的,您可以指定所需的任何关联名称,并仍然告诉它使用您的ForumSubTopic
类:
class ForumTopic
has_many :sub_topics, :class_name => "ForumSubTopic", :foreign_key => "forum_sub_topic_id"
end