【问题标题】:All columns in join in ruby on rails所有列都加入 ruby​​ on rails
【发布时间】:2015-02-03 20:46:30
【问题描述】:
class Category < ActiveRecord::Base
  has_many :articles
end

class Article < ActiveRecord::Base
  belongs_to :category
  has_many :comments
  has_many :tags
end

Category.joins(:articles) 在 rails 中等效

SELECT categories.* FROM categories
  INNER JOIN articles ON articles.category_id = categories.id

如果我想要 rails-code 相当于 sql

SELECT * FROM categories
  INNER JOIN articles ON articles.category_id = categories.id

我该怎么办?

【问题讨论】:

  • 您的问题不清楚。也许输入和输出的一些相关数据会有所帮助?

标签: sql ruby-on-rails join


【解决方案1】:
Category.select('*').joins(:articles)

或

categoyes = Category.select('*').includes(:articles)

和

categoyes.each do |category|
    puts category.articles
end

【讨论】:

    【解决方案2】:

    尝试使用select方法

    categories = Category.select('*').joins(:articles)
    categories.first.some_column_from_articles
    

    【讨论】:

      【解决方案3】:

      我用这个方法

      Category.connection.select_all("SELECT * FROM categories
        INNER JOIN articles ON articles.category_id = categories.id").to_a
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        相关资源
        最近更新 更多