Hi,
I have a user and photo model where a user has one photo (using
attachment_fu).
I have copied my user actions for create and update below, and I was
wondering if someone could suggest a better method.  I''m just not sure
this is the best way to do this...
def create
    @user = User.new(params[:user])
    #Create a new photo if the info is sent
    if !params[:photo][:uploaded_data].blank?
      @user.photo = Photo.create(params[:photo])
    end
    @user.save!
    self.current_user = @user
    redirect_back_or_default(''/'')
    flash[:notice] = "Thanks for signing up!"
  rescue ActiveRecord::RecordInvalid
    render :action => ''new''
  end
and
  def update
    @user = User.find(params[:id])
    respond_to do |format|
      if @user.update_attributes(params[:user])
        if !params[:photo][:uploaded_data].blank?
          #Create new photo for the user or find the existing one
          @photo = @user.photo ||= Photo.new
          @photo = @user.photo.build(params[:photo])
          @photo.save
        end
        flash[:notice] = ''Your account was successfully
updated.''
        format.html { redirect_to users_url }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @user.errors.to_xml }
      end
    end
  end
I would find any help / feedback useful.
Thanks!
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
If anyone could also give some tips on how to delete the old attachment (photo) once a new one is created I would appreciate it. I keep getting an error message when I try to delete the old attachment before creating the new one regarding access to frozen hashes. Thanks. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Incase anyone is interested / need this, this is the final update
action I have:
def update
    @user = User.find(params[:id], :include => :photo)
    respond_to do |format|
      if @user.update_attributes(params[:user])
        # If there is photo data, create the new photo
        if !params[:photo][:uploaded_data].blank?
          # Look to see if a previous photo exists
          @old_photo = Photo.find_by_user_id(@user.id) if
params[:photo][:uploaded_data]
          if @old_photo.nil?
            @photo = @user.photo ||= Photo.new
            @photo = @user.photo.build(params[:photo])
            @photo.save
          else
            @photo = @user.photo
            @photo.update_attributes(params[:photo])
          end
        end
        flash[:notice] = ''Your account was successfully
updated.''
        format.html { redirect_to users_url }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @user.errors.to_xml }
      end
    end
  end
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---