我在Rails 4应用程序中使用gon gem将值从控制器传递到JavaScript。我在应用程序的其他部分中使用了gon,它可以正常工作,因此与gem是否正确加载无关。
我有以下型号:
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
仅具有“地址”模型中的列,而没有“人”或“城市”中的列,例如gon.my_js_var[i].city is undefined
。我在这里想念什么吗?还是我应该以不同的方式来做?
谢谢
最佳答案
尝试使用to_json
,因为JSON
可通过gon
访问:
@my_instance_var = Address.includes(:person, :city).where("person_id = 1")
gon.my_js_var = @my_instance_var.to_json(include: [ :person, :city ])