【问题标题】:Beginner's question on has_and_belongs_to_many初学者关于 has_and_belongs_to_many 的问题
【发布时间】:2011-01-12 18:00:26
【问题描述】:

我的模型看起来像这样:

部分

has_and_belongs_to_many :博客

博客

has_and_belongs_to_many :sections

has_many :posts

发布

belongs_to :blog

我可以通过这样做从某个部门的博客中获取所有帖子:

section.blogs[n].posts

我的问题是如何让所有帖子连接到一个部分(通过博客)?我是这样的:

section.blogs.posts

或者更甜蜜的事件是:

section.posts

谢谢!

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    你想要这样的东西:

    Section
    has_and_belongs_to_many :blogs
    has_many :posts, :through => :blogs
    

    我不确定语法是否完全正确,但您正在寻找 through 属性。

    【讨论】:

    • 遗憾的是,这引发了异常:Mysql::Error: Unknown column 'blogs.section_id' in 'where clause': SELECT count(*) AS count_all FROM posts INNER JOIN blogs ON @ 987654325@.blog_id = blogs.id WHERE ((blogs.section_id = 1))
    • @Erik - 当使用 has many through 与 has 和属于 many 时,您必须稍微不同地设置模型/表格。查看文档:api.rubyonrails.org/classes/ActiveRecord/Associations/…
    • @Jimmy Cuadra:你的意思是我应该放弃 has_and_belongs_to_many 以支持 has_many :through?
    • @jimmy,感谢您发布文档链接,应该有助于清除它。
    • @erik,这取决于;博客和版块真的是相互依赖的,还是博客属于一个版块,而一个版块有_many blogs?
    猜你喜欢
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多