具有关联的活动记录查询

时间:2018-11-30 11:16:13

标签: mysql json activerecord ruby-on-rails-5

两个模型:类型和电影。电影类型众多,电影属于电影类型。

  create_table "genres", force: :cascade do |t|
    t.string "name"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "movies", force: :cascade do |t|
    t.string "title"
    t.integer "genre_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

我想返回(以JSON格式)所有电影(标题)的列表,并带有类型(名称和该类型的电影编号),但是我想使用Movie模型创建查询(Movie.some_query) ,而不是Genre.some_query)。我做了类似的事情:

  

Movie.select(:id,:title).joins(:genre).select('name as genre_name')

这给了我这样的格式: [{“ id”:1,“ title”:“泰坦尼克号”,“ genre_name”:“恐怖”}

我想添加流派电影的数量作为最后的记录。当我尝试使用.count或.length方法时,控制台返回错误。

控制器:

module Api
    module V1
        class MoviesController < ApplicationController
            respond_to :json

            def index
                respond_with Movie.select(:id, :title).joins(:genre).select('name as genre_name')
            end
        end
    end
end

0 个答案:

没有答案