since post_picture should await post_id as a foreign key, post_picture
will not be saved properly (or at least will not relate to the
specified post) if post is not saved. as long as there aint no post.id
(which is created while saving) you can't save the relation between
these two objects.

i'd say it's best to save @post and after that create @post_picture
and save it as well.

def create
  @post = Post.new(params[:post])
  if @post.save
    @post_picture = PostPicture.new(:uploaded_data =>
params[:post_picture_file])
    @post.post_picture = @post_picture
    if @post_picture.save
      # post and post_picture are saved correctly
      # ...
    else
      # post_picture could not be saved (=> error handling)
    end
  else
    # post could not be saved (=> error handling)
  end
end



On 27 Okt., 08:14, elioncho <[EMAIL PROTECTED]> wrote:
> Hello,
>
> Well I have a post and a post_picture model:
>
> class Post < ActiveRecord::Base
>   has_one :post_picture
> end
>
> class PostPicture < ActiveRecord::Base
>   belongs_to :post
> end
>
> When a user creates a post he/she can upload a picture. So in the
> create action on the posts_controller I have the following:
>
> def create
>     @post = Post.new(params[:post])
>     @post_picture = PostPicture.new(:uploaded_data =>
> params[:post_picture_file])
>     @post.post_picture = @post_picture
>     if @post.save
> ...
> end
>
> As you can see I relate the @post_picture with the @post using the
> line of code
>
> "@post.post_picture = @post_picture"
>
> My question is:
>
> When I do the @post.save does rails treats this as a transaction? (I
> want to know because there is maybe possible data loss if the post is
> saved into the posts table and the post_picture is not saved into the
> post_pictures table or viceversa.
>
> Thanks,
>
> Elioncho
--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to