blog_id magic with typo

Hi All,

I am modifying typo so as, I can host multiple blogs on the same typo. And its almost done, except that...i am stuck at one place.

When a user posts a new article, depending upon current blog_id, I would like to set the blog_id attribute of @article object.

So..in the admin/content_controller.rb:

We have:

def new_or_edit     if request.post?       set_article_author       save_attachments       logger.info("**** and blog id in article is #{@article.blog_id}")       if @article.save         set_article_categories         set_the_flash         redirect_to :action => 'show', :id => @article.id       end     end end

So, just before the actual save, the value printed by logger.info is "**** and blog id in article is 2".But after @article.save is called...whatever may be the current blog_id, the value that gets stored in database is always 1. And I have no clue, why is this.

Another pointer. In content.rb model i have defined validate_on_create callback and here goes code for that:

def validate_on_create    logger.info("$$$ and blog id in article after save is #{self.blog_id}")    # my own financial domain kung-fu end

so...the above code also prints blog_id as 2 just before saving the article. But again...the value that goes in database is always 1.

Any clues, why is this?

I am really lost here. Though i can manage this with some crude hack...i don't want to do that. Can any typo hacker have a look in the code and point me....which filter actually sets the blog_id automagically to default one.

gnufied

Ok folks the problem is solved...so please ignore this and the previous mail.

Yeah, okay -- but don't keep us all in suspense. What was the solution?

Oh...i didn't think somebody anybody else would be interested here. Anyway the issue was with following code snippet:

  def initialize(*args)     super(*args)     set_default_blog   end

  def set_default_blog     if self.blog_id == nil or self.blog_id == 0       self.blog = Blog.default     end   end

I don't know how, but the above code resets the blog_id to 1 always, so i changed this code to:

  def initialize(*args)     super(*args)     set_default_blog   end

  def set_default_blog     if self.blog_id == nil or self.blog_id == 0       self.blog = Blog.set_default_with_user(self.user_id)     end   end

where set_default_with_user is a method that i added to blog.rb.