#<#:0x00000104e1fca8>的未定义局部变量或方法`listing'
我收到的错误。
<p id="notice"><%= notice %></p>
<div class="row">
<div class="col-md-6">
<div class="thumbnail">
<%= image_tag listing.image.url %>
</div>
</div>
<div class="col-md-6">
<h3><%= @listing.name %></h3>
<p><%= number_to_currency(@listing.price, :unit => "£") %></p>
<p><%= @listing.vendor %></p>
<p><%= @listing.description %></p>
</div>
</div>
<%= link_to 'Edit', edit_listing_path(@listing), class: "btn btn-link" %> |
<%= link_to 'Back', listings_path, class: "btn btn-link" %>
答案 0 :(得分:1)
看起来你的问题涉及范围。在Ruby中,这里有不同类型的变量。
Local Variables
Instance Variables
Class Variables
Global Variables
在image_tag中,您指定了一个本地变量list。该变量的范围应更改为实例变量,前面带有@符号
<%= image_tag listing.image.url %>
应该成为
<%= image_tag @listing.image.url %>
这应该可以解决您的问题,并且您将不再收到本地变量错误。
答案 1 :(得分:0)
您的错误说
未定义的局部变量或方法`listing&#39;对于#&lt;#:0x00000104e1fca8&gt;
因此,在您的代码中,您正在使用未由您定义的列表。
使用:
<%= image_tag @listing.image.url %>
请注意我使用@listing而不是列出
<强>更新强>
在index.html.erb中你会有类似
的东西@listings.each do |listing|
// this makes listing available so you can use
<%= listing.image.url %>
end