This is a database/active record problem, *not* a text filter problem.

The problem, plain and simple, is that article.text_filter is supposed
to be a TextFilter object, but instead it's a block of YAML.  I'm not
quite sure how that could happen--it shouldn't ever have been YAML in
the first place, so it's not like it missed a conversion step.

Oh, wait--there it is.  Your schema is broken.  You have a
'text_filter' field in contents; there should only be a
'text_filter_id' field.  Back up your db and drop text_filter, and you
should be okay.  Somehow you missed that migration.


Scott

On 7/18/06, Steve Longdo <[EMAIL PROTECTED]> wrote:
> A little research on populate_html_fields shows it sprang into
> existence between r1004 and r1033 in the content.rb model.  As near as
> I can see it was always expecting a controller of some kind and never
> the instance of Content that the ContentObserver(also r1033) sends in.
>
> 101               def html(controller,what = :all)
>         99        def populate_html_fields(controller)
>
> *sigh*  I will into it some more tomorrow, tired now.
>
> On 7/18/06, Steve Longdo <[EMAIL PROTECTED]> wrote:
> > I've never personally edited my typo table structure.  I do know one
> > of the migrations ran and turned my UTF-8 data into ASCII.  Only
> > because I had some language characters outside the overlap in the
> > charactersets.
> >
> > I'm suspicious of the change in the ContentObserver class from 2 weeks
> > ago.  It seems to be responsible for populating the html_fields before
> > a save.  I suspect if I remove the commentted line my body_html field
> > will get populated again.
> >
> > At any rate I show 18 tables. Is that right?
> >
> > mysql> show tables;
> > +-----------------------+
> > | Tables_in_rhesus_typo |
> > +-----------------------+
> > | articles_categories   |
> > | articles_tags         |
> > | blacklist_patterns    |
> > | blogs                 |
> > | categories            |
> > | contents              |
> > | notifications         |
> > | page_caches           |
> > | pings                 |
> > | redirects             |
> > | resources             |
> > | schema_info           |
> > | sessions              |
> > | sidebars              |
> > | tags                  |
> > | text_filters          |
> > | triggers              |
> > | users                 |
> > +-----------------------+
> > 18 rows in set (0.00 sec)
> >
> > mysql> desc 
> > contents;+------------------+--------------+------+-----+---------+----------------+|
> > Field            | Type         | Null | Key | Default | Extra
> >  
> > |+------------------+--------------+------+-----+---------+----------------+|
> > id               | int(11)      |      | PRI | NULL    |
> > auto_increment || title            | varchar(255) | YES  |     | NULL
> >   |                || author           | varchar(255) | YES  |     |
> > NULL    |                || body             | text         | YES  |
> >   | NULL    |                || body_html        | text         | YES
> > |     | NULL    |                || extended         | text         |
> > YES  |     | NULL    |                || excerpt          | text
> >   | YES  |     | NULL    |                || keywords         |
> > varchar(255) | YES  |     | NULL    |                || text_filter
> >   | varchar(255) | YES  |     | NULL    |                || created_at
> >       | datetime     | YES  |     | NULL    |                ||
> > updated_at       | datetime     | YES  |     | NULL    |
> >  || extended_html    | text         | YES  |     | NULL    |
> >      || user_id          | int(11)      | YES  |     | NULL    |
> >          || permalink        | varchar(255) | YES  |     | NULL    |
> >              || guid             | varchar(255) | YES  |     | NULL
> > |                || text_filter_id   | int(11)      | YES  |     |
> > NULL    |                |
> > | whiteboard       | text         | YES  |     | NULL    |                |
> > | type             | varchar(255) | YES  |     | NULL    |                |
> > | article_id       | int(11)      | YES  | MUL | NULL    |                |
> > | email            | varchar(255) | YES  |     | NULL    |                |
> > | url              | varchar(255) | YES  |     | NULL    |                |
> > | ip               | varchar(40)  | YES  |     | NULL    |                |
> > | blog_name        | varchar(255) | YES  |     | NULL    |                |
> > | name             | varchar(255) | YES  |     | NULL    |                |
> > | comments_count   | int(11)      | YES  |     | NULL    |                |
> > | trackbacks_count | int(11)      | YES  |     | NULL    |                |
> > | published        | tinyint(1)   | YES  |     | 0       |                |
> > | allow_pings      | tinyint(1)   | YES  |     | NULL    |                |
> > | allow_comments   | tinyint(1)   | YES  |     | NULL    |                |
> > | blog_id          | int(11)      |      | MUL | 0       |                |
> > | published_at     | datetime     | YES  |     | NULL    |                |
> > +------------------+--------------+------+-----+---------+----------------+
> > 31 rows in set (0.00 sec)
> >
> > On 7/18/06, Scott Bronson <[EMAIL PROTECTED]> wrote:
> > > On Tue, 2006-07-18 at 21:52 -0500, Steve Longdo wrote:
> > > > I have an update for some reason the @article.text_filter is returning
> > > > a YAML String instead of a TextFilter object.  This is probably the
> > > > culprit for Trac #1006 as well.  I confirmed this in the console
> > > > loading the saved new post(a) and an older one that still renders
> > > > correctly(b):
> > >
> > > When I encountered symptoms like this, it's because my database schema
> > > was hosed.  Probably happened when I tried to fix the migrations 6
> > > months ago.  My database had an extra table that wasn't being used but
> > > had the same name as a variable in the code.  AR wasn't very happy about
> > > that and instantiated YAML strings instead of objects.
> > >
> > > In my case, I dropped the table and things started working.
> > >
> > > So, you might want to give your schema a close look-see.  Especially
> > > check for extra tables.
> > >
> > > I've been meaning to write a Typo database lint tool...  It would ensure
> > > that no extra tables exist, all table references work, no duplicates,
> > > etc.  Ah, if only I had a bit more time...
> > >
> > >    - Scott
> > >
> > >
> > >
> > > _______________________________________________
> > > Typo-list mailing list
> > > [email protected]
> > > http://rubyforge.org/mailman/listinfo/typo-list
> > >
> >
> >
> > --
> > Thanks,
> > -Steve
> > http://www.stevelongdo.com
> >
>
>
> --
> Thanks,
> -Steve
> http://www.stevelongdo.com
> _______________________________________________
> Typo-list mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/typo-list
>
_______________________________________________
Typo-list mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/typo-list

Reply via email to