我在我的Rails 4应用程序中使用gon gem将我的控制器中的值传递给JavaScript。我在我的应用程序的其他部分使用了gon,它工作正常,所以它与gem是否正确加载无关。如何将嵌套的Rails ActiveRecord查询结果传递给gon?
我有以下型号:
class Person < ActiveRecord::Base
has_many :addresses
end
class Address < ActiveRecord::Base
belongs_to :person
belongs_to :city
end
class City < ActiveRecord::Base
has_many :addresses
end
我指定的查询结果是这样的:
gon.my_js_var = @my_instance_var = Address.includes(:person, :city).where("person_id = 1")
@my_instance_var
有我需要的,例如所有值@my_instance_var[i].city.name
显示正确的值。但是,gon.my_js_var
只有来自Address模型的列,没有来自Person或City的列,例如gon.my_js_var[i].city is undefined
。
我在这里错过了什么吗?或者我应该以不同的方式做到这一点?
感谢
嗨@jiax,我试图弄清楚这一点,你可以发布你写的确切代码和在哪些文件?我喜欢更多的方向,因为我从来没有写过原始的SQL,也不知道'ActiveRecord :: Base.connection.execute'去哪里了 – james
@james,你可以在你的模型中构建你的SQL查询:'stmt =“SELECT * FROM TABLE”',然后'result = ActiveRecord :: Base.connection.execute(stmt)',然后将'result'传回给你'gon'对象 – jiax