[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

ActiveRecord problems

James Rosten

8/7/2007 2:39:00 AM

This is the error I get:

/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1857:in
`method_missing': undefined method `body=' for #<Article:0x1374418>
(NoMethodError)
from buzz.rb:60:in `add'
from buzz.rb:98

It spawns from this function:

def add
f = File.open Options.flags[:template]
@article = Article.new
@article.title = f.readline.gsub(/Title:/, '').strip
@article.author = f.readline.gsub(/Author:/, '').strip
@article.created_at = Date.today.to_s
@article.body = BlueCloth.new(f.read).to_html
@article.save
f.close
rhtml = ERB.new(File.open(Options.flags[:erb]).read, 0, "<>")
html = rhtml.result self.get_binding
f2 = File.open Options.flags[:file], "w"
f2.write html
f2.close
if Options.flags.index?
self.index
end
if Options.flags.archive?
self.archive
end
end

I'm not really sure why it only happens for body and not title, author,
or created_at. Maybe it has to do with body being of type 'text' in the
mysql database (title and author are 'varchar' and created_at is a
'date').

If you need to see some more of the code, just give me the word. Any
and all help is appreciated.

~ Jamie // yankees26
--
Posted via http://www.ruby-....

3 Answers

ronald braswell

8/7/2007 2:53:00 AM

0

On 8/6/07, James Rosten <seinfeld90@gmail.com> wrote:
> This is the error I get:
>
> /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1857:in
> `method_missing': undefined method `body=' for #<Article:0x1374418>
> (NoMethodError)
> from buzz.rb:60:in `add'
> from buzz.rb:98
>
> It spawns from this function:
>
> def add
> f = File.open Options.flags[:template]
> @article = Article.new
> @article.title = f.readline.gsub(/Title:/, '').strip
> @article.author = f.readline.gsub(/Author:/, '').strip
> @article.created_at = Date.today.to_s
> @article.body = BlueCloth.new(f.read).to_html
> @article.save
> f.close
> rhtml = ERB.new(File.open(Options.flags[:erb]).read, 0, "<>")
> html = rhtml.result self.get_binding
> f2 = File.open Options.flags[:file], "w"
> f2.write html
> f2.close
> if Options.flags.index?
> self.index
> end
> if Options.flags.archive?
> self.archive
> end
> end
>
> I'm not really sure why it only happens for body and not title, author,
> or created_at. Maybe it has to do with body being of type 'text' in the
> mysql database (title and author are 'varchar' and created_at is a
> 'date').
>
> If you need to see some more of the code, just give me the word. Any
> and all help is appreciated.
>
> ~ Jamie // yankees26
> --
> Posted via http://www.ruby-....
>
>

Hi James,

What is the schema for articles in the DB to which you are connecting?
Please provide the model file article.rb.

Ron

Mark Gallop

8/7/2007 2:56:00 AM

0

Hi James,

James Rosten wrote:
> This is the error I get:
>
> /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1857:in
> `method_missing': undefined method `body=' for #<Article:0x1374418>
> (NoMethodError)
> from buzz.rb:60:in `add'
> from buzz.rb:98
>
Does Article.columns list body? What happens if you assign body a short
"test" string?

Cheers,
Mark

James Rosten

8/7/2007 3:00:00 AM

0

Wow....I feel dumb. I had left CocoaMySQL open and I guess I hadn't
clicked away from the column after putting body in and it never went
into the schema. After exiting CocoaMySQL, it works.
--
Posted via http://www.ruby-....