Rails .includes()返回'undefined method'

时间:2016-07-27 16:08:58

标签: ruby-on-rails activerecord associations rails-activerecord

我有一个带有相关位置的公司对象。

公司has_many:地点 位置belongs_to:公司

我打电话的时候:

var user_id = 0;
user_request.json().values()["data"].forEach(function(user){
    if(user.username == str(instance.username)){
        user_id = user["id"]
    }
});
if(user_id){
    // make api call
} else {
    // user not found
}

我收到错误:

@company = Company.find(5).includes(:locations)

据我所知,我正在遵循rubyonrails.org的指示......

2 个答案:

答案 0 :(得分:2)

find()触发数据库查询,并返回模型的实例。您无法在其上调用includes,因为includes应该有ActiveRecord::Relation作为接收方。

您需要反转订单:find 必须留在最后:

@company = Company.includes(:locations).find(5)

答案 1 :(得分:0)

您是否在location.rb型号上查看了数据库中的记录。 company_id在那里?

您可以使用pry-rails来调试代码。你的代码看起来还不错。

您正在制作的json是jbuilder?因为就是这种情况,你需要创建相应的每个循环。