使用Paperclip-Dropbox gem的类的未定义局部变量或方法

时间:2014-08-07 19:01:21

标签: ruby-on-rails ruby image paperclip

#<#: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" %>

2 个答案:

答案 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