Ruby on rails RubyonRails自定义查询json序列化错误:ArgumentError(参数数目错误(0表示1)

Ruby on rails RubyonRails自定义查询json序列化错误:ArgumentError(参数数目错误(0表示1),ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我使用模型中设置的自定义字段执行自定义查询,如下所示: class Book < ActiveRecord::Base has_one :warehouseRecord def self.customList() Book. select("books.id, books.name, warehouseRecord.count").limit(10). joins(:warehouseRecord) end end 我得到错误:(参数数

我使用模型中设置的自定义字段执行自定义查询,如下所示:

class Book < ActiveRecord::Base
  has_one :warehouseRecord
  def self.customList()
    Book.
        select("books.id, books.name, warehouseRecord.count").limit(10).
        joins(:warehouseRecord)
  end
end
我得到错误:(参数数量错误(0代表1)


如果有人知道如何修复它,请提供帮助。

我应该在本地访问字段并使用includes(),而不是joins(),并编写自定义选择字段:

classbook
对于json表示,添加customList.json.erb,如:

<% @books.each_with_index do |book, index| %>
{
  "id" : "<%= book.id %>",
  "name" : "<%= book.name %>",
  "count" : "<%= book.warehouseRecord.count %>"     
}<% unless index == @books.count - 1%>,<% end %>
<% end %>]

{
“id”:“,
“名称”:“,
“计数”:”
},
]
class Book < ActiveRecord::Base
  has_one :warehouseRecord
  def self.customList()
    Book.includes(:warehouseRecord)
  end
end
<% @books.each_with_index do |book, index| %>
{
  "id" : "<%= book.id %>",
  "name" : "<%= book.name %>",
  "count" : "<%= book.warehouseRecord.count %>"     
}<% unless index == @books.count - 1%>,<% end %>
<% end %>]