Hello all,
I am trying to use attachment_fu plugin in my Rails app to implement a
feature wherein I can post a message along with an appropriate image it.
I am using Rails 2.0.2 and Ruby 1.8.7 for project specific purposes. I
am using Ubuntu 10.04 OS.
The tutorial that I am to integrate this plugin is following is:-
http://clarkware.com/blog/2007/02/24/file-upload-fu#FileUploadFu . I
have downloaded this plugin from
https://github.com/technoweenie/attachment_fu . I use the notes from
this page on how to best use this plugin.
I have installed the image science gem - `image_science (1.2.1)`. I have
also installed the freeimage packages that come with Ubuntu via the
Synaptic Package Mangager i.e. the following packages have been
installed:- `libfreeimage3, libfreeimage3-dev, libfreeimage3-dbg`.
I am getting an :-
undefined method `starts_with' for "public/post_images":String
Application_Trace gives me the following errors:-
/home/mohnish/.rvm/gems/ruby-1.8.7-p334/gems/activerecord-2.0.2/lib/active_record/base.rb:1532:in
`method_missing_without_paginate'
vendor/plugins/will_paginate/lib/will_paginate/finder.rb:170:in
`method_missing'
app/models/post_image.rb:9
app/controllers/groups_controller.rb:290:in `post_message'
error while trying to upload a picture.
My post_image.rb looks like this:-
class PostImage < ActiveRecord::Base
belongs_to :group_post
has_attachment :content_type => :image, :resize_to => [50,50],
:storage => :file_system, :partition =>
'false',#:path_prefix => 'public/images/topic_images',
:max_size => 100.kilobytes,
# :resize_to => '200x200>',
:thumbnails => { :thumb => '50x50>' },
:processor => 'ImageScience'
end
In the above code line 9 of post_image.rb corresponds to the `:processor
=> 'ImageScience'`
The part of the groups controller where I am encountering an error is at
line 290(its commented in the method):-
def post_message
@group_post = GroupPost.new(params[:group_post])
@group_comment = GroupComment.new(params[:group_comment])
@investor_group = InvestorGroup.find(params[:id])
@group_post.investor_group_id = @investor_group.id
investor_id = session['investor_id']
@group_post.post_by = investor_id
if @group_post.save
flash[:notice] = 'Post was successfully created.'
else
flash[:notice] = 'Post was not successfully created.'
end
respond_to do |format|
format.html {redirect_to :action => "show", :id =>
params[:id]}
format.js
end
@post_image = PostImage.new(params[:post_image]) #LINE 290
if @post_image.save
flash[:notice] = "Picture is successfully uploaded"
#redirect_to :action => :index
else
flash[:notice] = "Picture is not successfully uploaded"
#render :action => :new
end
end
I have read about issues with path_prefix when one is making use of Ruby
1.8.7 from:-
http://groups.google.com/group/attachment_fu/browse_thread/thread/502dd4504a59c84d
and I have made the appropriate changes to attachment_fu.rb. I have also
restarted my server and tested it again for every change I make to the
plugin files. I have commented my path_prefix for now and as of now this
plugin is taking the default path as to where one can store images which
is `"public/{table_name}"`
I basically am making use of a form_for tag in my views to get this
working for me. I am not sure if I am making use of the form_for
correctly. Please correct me in case I am going wrong here by any
chance.
<%form_for :group_post, @group_post,:post_image,@post_image, :url =>
{:action => :post_message, :id => params[:id]},:html => {:multipart =>
'true',:class => 'form'},:id => 'new_post' do |f,form| -%>
<p><label>Start Discussion:</label><%=f.text_field
:message%></p>
<%=f.file_field :uploaded_data%>
<%=submit_tag "Post"%></p>
<%end%>
I have around 3-4 months of experience with Rails and I am still a
newbie , kindly bear with me and correct me if feasible on where I could
be going wrong.
Any help or suggestions on how can I fix this would be highly
appreciated.
Thank you...