2013-03-06 142 views
0

我在我的控制器中有一个像这样的查询,我将它作为JSON传递给JBuilder,等等......但JBuilder什么也没有显示!这只是表明{}查看结果,查询返回与“puts”

@students = Students.top_students.joins(:program).where("programs.organization_id = ?", params[:id]).limit(10) 

所以才到达那里,我只是想确保它得到正确的数据,其联接是正确的,等等。 所以我能做到这一点?

如果我只是说puts @students它会打印类似的东西,我想看看它们里面都有什么。

#<Student:0x007fd33ebe57a8> 
#<Student:0x007fd33ebe4d08> 
#<Student:0x007fd33ebe3ea8> 

回答

1

Student定义to_s方法和您的puts输出将更加有用。我推荐使用inspect

def to_s 
    inspect 
end 

或者,您可以通过@students迭代,并做更多的输出:

@students.each do |student| 
    puts "Id: #{student.id}" 
    puts "Name: #{student.name}" 
    ... 
end 

或者,如果你想保持它的简单,快速的collect将这样的伎俩:

puts @students.collect(&:inspect) 
+0

不错。我不知道那种检查方法。我听说过flat_map之类的东西吗?你也用过吗? – Bohn 2013-03-06 22:38:08

+0

我以前没有,但是这里有一些文档:http://apidock.com/ruby/Enumerable/flat_map – 2013-03-06 22:41:30