2012-01-11 74 views
1

我做的自定义查询,在模型中设置这样的自定义字段:Ruby on Rails的自定义查询JSON序列化错误:引发ArgumentError(错误的参数数目(0 1)

class Book < ActiveRecord::Base 
    has_one :warehouseRecord 
    def self.customList() 
    Book. 
     select("books.id, books.name, warehouseRecord.count").limit(10). 
     joins(:warehouseRecord) 
    end 
end 

当连载结果JSON或当尝试输出计数值到HTML视图

@books = Book.customList() 

respond_to do |format| 
    format.html 
    format.json { render :json => @books } 
end 

我得到错误:(错误的参数数目(0 1)

如果有人知道如何解决它,请帮助

回答

0

我应该来访问localy领域和用途包括()insted的连接的()和编写自定义选择字段:http://guides.rubyonrails.org/active_record_querying.html

class Book < ActiveRecord::Base 
    has_one :warehouseRecord 
    def self.customList() 
    Book.includes(:warehouseRecord) 
    end 
end 

对于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 %>] 
相关问题