我在我的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