【发布时间】:2015-10-12 15:23:21
【问题描述】:
我对 Rails 比较陌生,并且有一个关于如何成功地将子类别添加到现有联接表关系的问题。
例如,假设我正在建立一个工作委员会。每个作业都有 5 个主要的过滤器类别(Job_Type [General Management, Finance & Operations, etc.]、Industry [ Technology, Healthcare, etc.]、Region [Northwest, Southeast, etc.] 等)。我希望它们中的每一个也有子类别(例如,这个职位有一个Region > Southeast > South Carolina > Greenville)。
为 5 种主要过滤器类型设置初始联接表关联对于未来的过滤和可搜索性是有意义的。
编辑
这是我目前的Posting 模型
class Posting < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
belongs_to :recruiter, class_name: "User"
belongs_to :company
has_many :interests
has_many :comments, as: :commentable
has_and_belongs_to_many :job_types
has_and_belongs_to_many :industries
has_and_belongs_to_many :regions
has_and_belongs_to_many :market_caps
has_and_belongs_to_many :ownerships
has_many :users, through: :interests
acts_as_followable
end
我目前在 ActiveRecord 上直接使用连接表而不是数组,以提高速度和稍后的过滤/搜索功能。它还允许我将这些连接表与大量其他必要的 ActiveRecord 关联一起使用。
这是job_type 的外观:
class JobType < ActiveRecord::Base
has_and_belongs_to_many :postings
has_and_belongs_to_many :news_items
has_and_belongs_to_many :companies
has_and_belongs_to_many :users
has_and_belongs_to_many :mkt_ints
end
这允许我访问一个简单的关联模型数组,但我对如何将其移至具有潜在进一步嵌套数组的数组数组感到困惑。为第一个连接表添加额外的连接表感觉很笨拙。我确信有更好的解决方案,并且很想了解您可能有的任何见解。
第二次编辑
如果有帮助,这是我正在尝试做的事情的代表性图片。
谢谢!
【问题讨论】:
-
只是一个友好的提示,如果您尝试自己创建这些模型关系然后发布代码以获得评论和帮助,您可能会获得更多帮助。
-
感谢@ValAsensio。我感谢反馈,我理解这一点。我将继续对其进行一些研究,一旦我有我认为值得发布的东西,我就会发布代码。我不想浪费更多不必要的时间。 =]
-
我以为有人会加入。“加入 5 种主要过滤器类型的表关联”这是非标准 Rails 语言,也与数据库 SQL 无关,所以也许这让回答者望而却步。我希望有人能提供帮助,但可能不会发生;这就是 Stack Overflow 上的生活。我自己有几个未回答的问题。每个人都这样做,所以不要为此灰心。
标签: ruby-on-rails ruby-on-rails-4 nested polymorphic-associations