具有多态资源的 ruby​​ geocoder gem

ste*_*tew 4 ruby-on-rails geolocation polymorphic-associations ruby-on-rails-3

我有一堆或多个地址,它们通过多态关联属于各种其他资源

belongs_to :addressable, :polymorphic => true
Run Code Online (Sandbox Code Playgroud)

和我的资源,可以说它是一家酒店

has_one :address, :as => :addressable
Run Code Online (Sandbox Code Playgroud)

我可以搜索我的地址数据没问题,例如在我的搜索字符串的 20 英里半径内找到每个地址

@addresses = Address.near(params[:search],20, :order => :distance).page params[:page]
Run Code Online (Sandbox Code Playgroud)

我真的很难加入资源,即酒店信息,我可以链接到详细信息页面,但我想在我的结果中显示酒店的名称。

我认为使用 :include 可能有帮助:

@addresses = Address.near(params[:search],20, :order => :distance, :include => :hotel).page params[:page]
Run Code Online (Sandbox Code Playgroud)

..但没有运气

非常感谢任何建议。

ste*_*tew 5

好的,我在同事的帮助下想通了

 @addresses = Address.where(addressable_type: 'Hotel').near(params[:search],20, :order => :distance).includes(:addressable).page params[:page]
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助别人!