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
-- 
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Which is line 48 
(#{RAILS_ROOT}/app/controllers/admin/projects_controller.rb:48)?
William Lefevre wrote:> 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
>
>   
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Chris T wrote:> Which is line 48 > (#{RAILS_ROOT}/app/controllers/admin/projects_controller.rb:48)?line 48 is: @s2 = @project.update_attributes( params[:project] ) I get the error for both Project#update_attributes and Project#save when the referenced (belongs_to) Thumbnail fails validation and does not save. Also this only happens if there has never been an associated Thumbnail. Once one is successfully associated it''s no longer a problem. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
William Lefevre wrote:> Greetings, > I''ve been getting an error all afternoon and haven''t been able to > figure it out; any help would be wonder full.Whew. I figured it out a solution but I don''t feel 100% why I was getting this error. If anyone has any insight I''d still love to hear it. The solution was simple, I added: validates_associated :thumbnail to my Project model and all is good. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---