Odd error with file_column and relative_path


I'm trying to get image uploads to work with file_column, and thought I almost had it when I stumbled on a really strange error I can't figure out. No other post here seems to deal with it either.

The create and edit views for my object "Item" (I'm a newbie at ruby/ rails, so pardon my vocab :wink: display the uploaded image just fine, but when I go back to the index, the page dies because it tried to invoke picture_relative_path on nil. No idea why the image string suddenly becomes nil, seems to me that it shouldn't be possible... attaching error and code around it. Any help GREATLY appreciated, just holler if any additional info would make it easier to diagnose. Hopefully the hive mind is sharper than my googling :wink:

--------Error output----------------

Showing items/index.html.erb where line #14 raised:

You have a nil object when you didn't expect it! The error occurred while evaluating nil.picture_relative_path

Extracted source (around line #14):

11: <tr> 12: <td><%=h item.name %></td> 13: <td><%=h item.category %></td> 14: <td><%= image_tag url_for_file_column("item", "picture", "normal") %></td> 15: <td><%= link_to 'Show', item %></td> 16: <td><%= link_to 'Edit', edit_item_path(item) %></td> 17: <td><%= link_to 'Destroy', item, :confirm => 'Are you sure?', :method => :delete %></td>

Check out the documentation:

* in a view, "<%= url_for_file_column 'entry', 'image' %> will create an URL to access the   uploaded file. Note that you need an Entry object in the instance variable @entry for this   to work.

So the line in your index view:

<%= image_tag url_for_file_column("item", "picture", "normal") %>

Is in-fact is trying to invoke:


hence why you are getting evaluating nil error

Try this instead, pass the actual variable without quotes:

<%= image_tag url_for_file_column(item, "picture", "normal") %>

Admittedly I probably wouldn't use file_column these days. Paperclip is the defacto standard: http://github.com/thoughtbot/paperclip/tree/master

Checkout the Ruby Tool Box which will give you sense of the defacto plugins:

HTH, Nicholas

You might also consider attachment_fu (de other facto :slight_smile: as a viable replacement for FileColumn.