2013-10-26 44 views
0

如何使用gmaps4rails gem创建指向当前Class对象的链接?gmaps4rails infowindows(ruby/rails)

我指定的信息窗口在模型中,像这样:

def gmaps4rails_infowindow 
    "<h3>#{address}</h3>" 
end 

不过,我想创建对象的显示页面的链接出现在信息窗口如:

def gmaps4rails_infowindow 
    "#{link_to 'Object' , object_path}" 
end 

但是,因为这是在模型中,我不能使用_path或_url。

有没有办法从控制器或其他简单的解决方案做到这一点?

***更新

控制器:

@json = Offer.where('state = ?', 'new').all.to_gmaps4rails do |offer, marker| 
     marker.infowindow render_to_string(:partial => "offers/infowindow", :locals => { :object => offer}) 
     marker.picture({ 
         #:picture => "http://www.blankdots.com/img/github-32x32.png", 
         :width => 32, 
         :height => 32 
        }) 
     marker.title "i'm the title" 
     marker.sidebar "i'm the sidebar" 
     marker.json({ :id => offer.id, :address => offer.address}) 
    end 

信息窗口视图:

<%= link_to 'See Offer', @offer_path %> 

回答

2

当然,read the doc here.

这里是当你在你的工作控制器提供的示例:

@json = User.all.to_gmaps4rails do |user, marker| 
    marker.infowindow render_to_string(:partial => "https://stackoverflow.com/users/my_template", :locals => { :object => user}) 
    marker.picture({ 
       :picture => "http://www.blankdots.com/img/github-32x32.png", 
       :width => 32, 
       :height => 32 
      }) 
    marker.title "i'm the title" 
    marker.sidebar "i'm the sidebar" 
    marker.json({ :id => user.id, :foo => "bar" }) 
end 

我倾向于将infowindow代码放在偏分量中,因为它更干净,但您不必强迫使用这种抽象。


我假设你使用版本< 2.X否则relevant doc is her e和方法发生了变化。

+0

非常感谢。这基本上是工作,我现在只有一个问题 - 我创建的链接不链接到显示视图,而是呈现索引。我无法弄清楚为什么 - 你有什么建议吗?请参阅更新。 – user2514224

+0

这超出了问题范围......但尝试'<%= link_to'See Offer',offer_path(object)%>' – apneadiving