Hello!
I've been trying today to setup fleximage to handle photo uploads to a RoR application by following the tutorial that is provided (http://github.com/Squeegy/fleximage/wikis/gettingstarted)
Originally, I just dropped in all of the sample code that they provided, which I copied below this question.
- When I tried to access "new" to upload a new photo, I received an error of "Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id", which I understood to be caused by the fact that I was using @photo without initializing it in the controller.
- I added @photo = Photo.new to the controller for "new" but then it returned that it could not find the table Photo.
- I created a new migration for a photo table, including only the fields for name and author, which are also requested in the provided "new" view.
- Now, it just returns the error "undefined method `photos_path' for #<ActionView::Base:0x230ee70>"
Since I'm incredibly new to fleximage, I'm not exactly sure if I'm going in the wrong direction with my troubleshooting, if a table even needed to be created for the photos or what my next step should be.
If anyone could point me in the right direction, I'd appreciate it.
Model (photo.rb) class Photo < ActiveRecord::Base acts_as_fleximage :image_directory => 'public/images/uploaded_photos' end
Controller (photos_controller.rb) class PhotosController < ApplicationController
def new
end
def create @photo = Photo.new(params[:photo]) if @photo.save redirect_to photo_url(@photo) else flash[:notice] = 'Your photo did not pass validation!' render :action => 'new' end end
end
View (new.html.erb) <% form_for @photo, :html => { :multipart => true } do |f| %> <p> <b>Name</b><br /> <%= f.text_field :name %> </p>
<p> <b>Author</b><br /> <%= f.text_field :author %> </p>
<p> <b>Upload Image</b><br /> <%= f.file_field :image_file %><br /> or URL: <%= f.text_field :image_file_url %> </p>
<p> <%= f.submit "Create" %> </p> <% end %>