Forum: Ruby on Rails url_for_file_column nil

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
beattie.mark (Guest)
on 2005-12-07 03:55
(Received via mailing list)
Hi,

Firstly, thanks to Sebastian K. for an excellent plugin! It works
marvellously for uploading and resizing images, but I'm getting the
dreaded
url_for_file_column returns nil error.

Using:
file_column 0.3.1
Rails 0.14.3
Ruby 1.8.2-1
Debian Sarge

I am using an instance variable as required in my view.
image_relative_path
also returns nil. Any pointers?

new.rhtml:
<%= file_column_field "recipe", "image" %>

show.rhtml:
<%= image_tag url_for_file_column("recipe", "image") %>

controller:
@recipe = Recipe.find(params[:id])
(and is confirmed not to be nil)

NoMethodError:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.first

thanks

--

Mark B.
Easy Schedule Management
http://easy-online-schedule.com
francois.beausoleil (Guest)
on 2005-12-07 04:16
(Received via mailing list)
Hello Mark,

2005/12/6, Mark B. <removed_email_address@domain.invalid>:
> Firstly, thanks to Sebastian K. for an excellent plugin! It works
> marvellously for uploading and resizing images, but I'm getting the dreaded
> url_for_file_column returns nil error.

Is it possible that @recipe.image is nil ?  If that's the case, then
that is your problem.  You have to code around it:

<% if @recipe.image.nil? then -%>
  <em>No image</em>
<% else -%>
  <%= image_tag url_for_file_column ... %>
<% end -%>
beattie.mark (Guest)
on 2005-12-07 04:20
(Received via mailing list)
Hello François,

On Wednesday 07 December 2005 11:13 am, Francois B. wrote:
> Is it possible that @recipe.image is nil ?  If that's the case, then
> that is your problem.  You have to code around it:

Yes, it is nil, which is exactly the problem - this is for a @recipe for
which
an image has been uploaded, resized, and saved by file_column.

I had exactly that same code in place which resulted in no images being
displayed at all. Any ideas about where I should be looking for clues?

thanks

--

Mark B.
Easy Schedule Management
http://easy-online-schedule.com
francois.beausoleil (Guest)
on 2005-12-07 05:04
(Received via mailing list)
2005/12/6, Mark B. <removed_email_address@domain.invalid>:
> On Wednesday 07 December 2005 11:13 am, Francois B. wrote:
> > Is it possible that @recipe.image is nil ?  If that's the case, then
> > that is your problem.  You have to code around it:
>
> Yes, it is nil, which is exactly the problem - this is for a @recipe for which
> an image has been uploaded, resized, and saved by file_column.

Hmmm, that's bad.  Try to open the Rails console and check the recipe
manually:
ruby script/console
r = Recipe.find(ID)
r.image

r.image should return the path to the image.  If that comes back as
nil, then your image was never put in the DB in the first place.
Check the place where you upload and add debugging information there.

You might also want to add an after_save callback to print the path to
the image, at least temporarily.

Additionaly, unit testing Recipe image uploading might be a good idea.

Hope that helps !
beattie.mark (Guest)
on 2005-12-07 05:37
(Received via mailing list)
On Wednesday 07 December 2005 12:02 pm, Francois B. wrote:
> nil, then your image was never put in the DB in the first place.

Ah, yes I kinda missed that point somehow - call me stupid but the
remedy for
me was to make sure the table actually had a column called "file"...

Could I just as easily have two files associated with an object, such as
an
image and an attachment of unknown type using 2 file_column declarations
in
the model assuming it's table has a field to store the filename of each?

class Foo < ActiveRecord::Base
  file_column :image, :magick => { :geometry => "640x480>" }
  file_column :attachment
end

Sorry to have bothered you, and thanks again.

--

Mark B.
Easy Schedule Management
http://easy-online-schedule.com
skanthak (Guest)
on 2005-12-07 14:47
(Received via mailing list)
Hi Mark,

I'm glad you like the plugin...

On 12/7/05, Mark B. <removed_email_address@domain.invalid> wrote:
> Could I just as easily have two files associated with an object, such as an
> image and an attachment of unknown type using 2 file_column declarations in
> the model assuming it's table has a field to store the filename of each?
>
> class Foo < ActiveRecord::Base
>   file_column :image, :magick => { :geometry => "640x480>" }
>   file_column :attachment
> end

yes, that works. You'll need two different columns in your database
and two different file upload fields, though.

Sebastian
This topic is locked and can not be replied to.