[Radiant] Error Trying to Use script/console to Create Pages
Radiant List
ebwebw+list+radiantcms at gmail.com
Tue Nov 14 14:02:14 CST 2006
Hello Radiant Folk!
I'm a Radiant neophyte with a little bit of Rails experience. Thank you so
much for making Radiant such an elegant, usable and slick CMS, I'm very
excited about using it for some upcoming projects.
I've long had a dream of being able to create simple,
hierarchical-navigation based sites using simple scripting or, even better,
YAML/XML etc. to generate the framework and initial content. I'm hopeful I
can figure out a way to do this using Radiant. I've been experimenting with
some approaches using the rails console.
I first tried creating a pages_controller instance then running the new
method after setting the params property. This didn't work due to the use
of the request object in that method. I then
tried adapting that method so it could work as a simple page creation
function. I am running into a " undefined method `stringify_keys!' for
"body":String" message however.
Here's my code:
def new_page(
title,parts,slug,breadcrumb,parent=1,behavior="",layout_id=
"1") page = Page.
new
page.slug = slug
page.breadcrumb = breadcrumb
page.parent = Page.find_by_id(parent)
parts.each
do |part|
new_part = PagePart.new(part[
:name])
new_part.filter_id = part[
:filter_id]
new_part.content = part[:content]
page.parts << new_part
end
page.save
end
then I run
new_page("test automatic", [{:name=>"body", :filter_id=>"Markdown",
:content=>""}, {:name=>"extended",:filter_id=>"",
:content=>""}],"test-automatic","test automatic")
and get the error
NoMethodError: undefined method `stringify_keys!' for "body":String
from
./script/../config/../config/../vendor/rails/activerecord/lib/active_record/base.rb:1506:in
`attributes='
from
./script/../config/../config/../vendor/rails/activerecord/lib/active_record/base.rb:1354:in
`initialize_without_callbacks'
from
./script/../config/../config/../vendor/rails/activerecord/lib/active_record/callbacks.rb:236:in
`initialize'
from (irb):63:in `new_page'
from (irb):62:in `new_page'
from (irb):70
from :0
I've also tried creating the part_parts object using a straightforward call
from the console (p= PagePart.new("body")) with the same error resulting.
I'm on a OS X 10.4 mac with a slightly outdated install of Darwinports, but
everything seems to be running local here, not off my Rails install.
Any thoughts on how I can batch-generate pages or fix this script?
Thanks,
Ethan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.radiantcms.org/pipermail/radiant/attachments/20061114/a3e90928/attachment.html
More information about the Radiant
mailing list