Greetings,
I’ve been getting an error all afternoon and haven’t been able to
figure it out; any help would be wonder full.
Models-----
class Project < ActiveRecord::Base
belongs_to :job
belongs_to :thumbnail, :class_name => ‘Image’, :foreign_key =>
‘image_id’
has_and_belongs_to_many :services
end
class Thumbnail < Image
has_one :project
end
Controller------
class Admin::ProjectsController < ApplicationController
def save
.
.
. # thumbnail image has been uploaded, created, and added to
@project.thumbnail
#if there's an id then do an update otherwise it's a new project so
do a save
if params[:id]
@s1 = @project.thumbnail.save if @project.thumbnail
@s2 = @project.update_attributes( params[:project] ) # this is
the line which fails
@saved = ( @s1 == false || @s2 == false ) ? false : true
else
@saved = @project.save
end
if @saved # decide what to render or where to redirect, etc.
.
.
.
end
end
I only run into problems when no thumbnail has been previously saved and
the thumbnail I’m trying to save is invalid (ie. fails to save). If a
thumbnail has already been saved then uploading a new, invalid thumbnail
is handled perfectly. It also doesn’t matter if the Project is being
saved for the first time or updated.
Here’s the full error I’m getting:
ArgumentError in Admin/projectsController#save
wrong number of arguments (1 for 0)
RAILS_ROOT:
/Users/william/Projects/rails/lizarddesign/public/…/config/…
Application Trace | Framework Trace | Full Trace
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:349:in
save' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:349:in
callback’
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:346:in
callback' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:in
each’
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:341:in
callback' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/callbacks.rb:252:in
create_or_update’
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1392:in
save_without_validation' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/validations.rb:736:in
save_without_transactions’
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:126:in
save' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/connection_adapters/abstract/database_statements.rb:51:in
transaction’
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:91:in
transaction' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:118:in
transaction’
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/transactions.rb:126:in
save' /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1439:in
update_attributes’
#{RAILS_ROOT}/app/controllers/admin/projects_controller.rb:48:in `save’
Request
Parameters: {“commit”=>“Save”, “project”=>{“job_id”=>“4”, “title”=>"test
- no errors", “client”=>“big client”, “description”=>“descriptoin is
good”}, “id”=>“32”, “service_ids”=>[“462”, “483”],
“image”=>{“thumbnail”=>#StringIO:0x26bf6b4}}
Show session dump
Response
Headers: {“cookie”=>[], “Cache-Control”=>“no-cache”}
Lastly it doesn’t crash till after the after_validation callback.
I’m stymied. Any insight would be great.
Thanks William