【问题标题】:Problems with passing variables to a partial将变量传递给部分的问题
【发布时间】:2010-01-12 07:07:53
【问题描述】:

我正在使用部分“信息窗口”(app/view/tech/_infowindow.html.erb) 来填充谷歌地图标记:

new_marker = GMarker.new([t.lat, t.lng], :icon => icon, :title => t.summary, :info_window => (render_to_string :partial => "infowindow", :object => t))

但我遇到了一个非常奇怪的错误。当我简单地说:

<%= debug(infowindow) %>

我得到了哈希的完整输出。但是当我尝试引用任何单个属性时,例如:

<%= infowindow.summary %>

即使该属性显示在整个哈希的调试输出中,我也会为 nil:NilClass 抛出一个未定义的方法 `summary'。为什么我只能访问整个哈希而不是部分中的单个属性?

编辑:返回哈希的顶部:

!ruby/object:Ticket 
attributes: 

如果有帮助,正在使用的模型是一个 Ticket 对象。

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    您要做的是在哈希类中不存在的 infowindow 哈希上调用方法 summary,因此会出现错误。要访问单个哈希元素,试试这个

    <%= infowindow["summary"] %>
    

    【讨论】:

    • 如果插件作者很聪明,它也可以作为一种方法使用。
    • 我仍然收到一个错误,现在它是一个 nil 对象...传递的变量是一个 Ticket 对象,例如,一个摘要列。如果 infowindow 是 Ticket 对象的局部变量,为什么我不能在其他地方使用的相同 model.attribute 语法中只执行 infowindow.summary?
    • 你在这个问题上取得进展了吗...我对 RSpec + partial + view 也有类似的问题,stackoverflow.com/questions/4695183/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2011-06-09
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多