Will,

You really are asking hundred-dollar questions, some of which are the 
same ones I've been asking.  I've been hearing that Radiant is a CMS and 
that it is primarily geared toward serving up content.  That's true. 
However, like you, I have the need to integrate other "pages" into my 
site that interface with the user (allowing him to logon, complete a 
form, do data entry, etc.).  Basically, what you're wanting is a hybrid. 
You want to capitalize on what Radiant does well and interject in a few 
areas with what Rails does well.  At least, that's my goal.

I've really toiled over this wondering what would be the best practice. 
Making loose use of the 80:20 rule, 80% of my needs are met by Radiant 
in excellent fashion.  However, 20% of my needs are not.  They are, 
however, met by Rails which--go figure--just so happens to be what 
Radiant was built on!  This naturally has me asking: If Rails is right 
there under the hood, how come I can't *easily* leverage it for my 
custom pages?  Additionally, why do I have to sacrifice one for the 
other.  Can't I have "Radiant on Rails" and make use of both?  I haven't 
found the obvious answer at this point, though I would be all too happy 
to hear what others are doing.  Or even if this is a typical problem, 
which, perhaps, it isn't.

Here's what I ultimately decided to do.  It may not be the best choice, 
but it's what came to mind.  First, I started with Radiant as content 
management is the core of my particular site.  Now, I am getting ready 
to transition into the next phase, where I will plug into the site the 
user-interactive pages.  Basically, I'm going to write a separate Rails 
application that accesses the same Radiant database.  (I'm using the 
same database since it already has the app-specific tables for which I 
added back-end interfaces into Radiant.)  I'm going to overlay the Rails 
app on top of the Radiant site.  That is, I'm going to (attempt to) use 
Apache mod_rewrite to properly dispatch incoming URLs to the right 
application: RadiantCMS or CustomRailsApp.  I'm going to attempt to make 
the pages in the CustomRailsApp look like the pages found in Radiant. 
I'm going to attempt to disguise the URLs so that the custom pages look 
like they are part of the same Radiant site.  The idea is to make these 
two separate apps (each running on their own mongrels) appear seamlessly 
integrated.

I don't feel good about this.  It feels like a kludge.  What I'd like to 
do is write extensions--just like those I'm already starting to write on 
the back end--for the front end.  I'd like to be able to do this within 
the context of a Radiant page so that I can take advantage of Radiant's 
offerings (snippets, custom tags, layouts, etc.) and Rail's offerings 
(simplified CRUD).  If I were a Ruby/Rails veteran I'd develop just this 
sort of functionality/feature.  Unfortunately, I'm still relatively 
green and so I'm looking at more basic alternatives.

It's been recommended that I create custom tags to accomplish some of 
this.  I don't like the idea.  Why am I writing custom tags to do 
something that Rails already knows how to do?  Writing custom tags to 
accomplish Rails CRUD operations feels ludicrous.  I feel like that 
would be learning Chinese to tell an Chinese-English interpreter to tell 
my English speaking friend something that I could just tell him myself.

I do wish to make it clear: I think Radiant is superb.  I love Radius, 
the simplicity of page parts, and its extensibility.  It's just inches 
away from being incredible.  It's a matter of lessening the division 
between itself and Rails so that hybrid sites won't be such a difficult 
matter.

If you run into any good ideas, I'd like to hear them.  Who knows, maybe 
"front-end extensions" won't be far off...  :)

Respectfully,
Mario T. Lanza

-- 
Posted via http://www.ruby-forum.com/.
_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to