# CMS and REST - best practices

**URL:** <https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727>\
**Category:** Rails\
**Created:** [May 12, 2009, 12:29am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727 "2009-05-12T00:29:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 12, 2009, 12:29am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/1 "2009-05-12T00:29:56Z")

</div>

OK I need a bit of direction for this. I want to build an app where I  
have a CMS side that edits everything (which is all private), then a  
public side which just views is all. My dilemma is how to set this up.  
What is the best practice for this?

I have a couple ideas:

obj1Controller/Obj1 (this would publicly list every obj1)

obj1Controller/Obj1/edit (this would privately list every obj1 and  
allow you to edit)

OR do I do something where there’s a whole other side:

CMS/obj1Controller/ (private)  
PUBLIC/obj1Controller/ (public)

In the above, I feel like that would break REST, since there’s kinda  
two URL’s for the same resource.

Thoughts?

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 12, 2009, 3:17am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/2 "2009-05-12T03:17:36Z")

</div>

removed\_email\_address@domain.invalid wrote:

> allow you to edit)
> 
> OR do I do something where there’s a whole other side:
> 
> CMS/obj1Controller/ (private)  
> PUBLIC/obj1Controller/ (public)

Would you want to consider using a ready solution: Radiant CMS?  
URL - [http://radiantcms.org/](http://radiantcms.org/)

Cheers,  
Mohit.  
5/12/2009 | 9:16 AM.

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 12, 2009, 3:24am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/3 "2009-05-12T03:24:05Z")

</div>

hello, i need add the comments to radiant please i neet a tutorial

thanks  
El 11/05/2009, a las 20:16, Mohit S.  
escribió:

>

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 12, 2009, 3:44am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/4 "2009-05-12T03:44:38Z")

</div>

No, I want to build it myself… I look at it though.

So what is the best practice?

Should I build a separate section with its own controllers to edit  
them? or make a separate private view within the component controller?

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 12, 2009, 3:31am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/5 "2009-05-12T03:31:07Z")

</div>

Mauricio D. wrote:

> hello, i need add the comments to radiant please i neet a tutorial

It would be good to ask on the Radiant CMS mailing list, but see:

- [GitHub - saturnflyer/radiant-comments: Radiant Comments](http://github.com/saturnflyer/radiant-comments/tree/master)
- [http://wiki.github.com/radiant/radiant/using-radiant-as-a-blog](http://wiki.github.com/radiant/radiant/using-radiant-as-a-blog)

Cheers,  
Mohit.  
5/12/2009 | 9:30 AM.

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 13, 2009, 9:39am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/6 "2009-05-13T09:39:00Z")

</div>

removed\_email\_address@domain.invalid wrote:

> No, I want to build it myself… I look at it though.
> 
> So what is the best practice?
> 
> Should I build a separate section with its own controllers to edit  
> them? or make a separate private view within the component controller?

I started looking at Adva (see  
[GitHub - svenfuchs/adva\_cms: cutting edge cms, blog, wiki, forum ...](http://github.com/svenfuchs/adva_cms/tree/master)) which has quite a lot  
of good stuff in it you can look at for your project. It separates out  
the admin side of things from the public view side of things and it  
isolates the packages into plugin engines leaving your own app directory  
free for putting what you want into it.

It’s a nice idea and has some top coders working on it. Trouble is it  
has top coders working on it and they disdain documentation, so it’s a  
bit hard for someone coming into it who hasn’t followed the development.  
Clever coders often can’t resist the temptation to re-code everything or  
re-write commonly used plugins, which is what they have done inside  
Adva. There’re a lot of clever tricks, completely undocumented, so you  
really are on your own.

But on the other hand, once you’ve mastered some of the insider tricks,  
it’s quite easy to add your own controllers, models, and views. I’m not  
an insider though and it’s a moving target so I can’t offer advice on  
how to integrate your own code into the latest version, I’m still trying  
to work it out.

The other thing I don’t like about it is the assumption that a CMS is  
used solely for publishing “articles”. I guess if you spend your life  
blogging then that’s a sensible assumption, but most websites aren’t  
blogs or lists of articles. There doesn’t seem to be a way to edit pages  
which are composed of many “page sections” each with unique/non-unique  
content. So if you wanted to have a standard page section that appeared  
on a restricted set of pages there’s no way you could do it easily.

It’s nice, it has potential, there’s a lot of clever code in it, but  
it’s a very very long way to go before it’s as easy to use as Wordpress.

John S.

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [May 13, 2009, 9:45am UTC](https://www.ruby-forum.com/t/cms-and-rest-best-practices/167727/7 "2009-05-13T09:45:12Z")

</div>

On Wed, May 13, 2009 at 9:39 AM, John S.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> The other thing I don’t like about it is the assumption that a CMS is  
> used solely for publishing “articles”. I guess if you spend your life  
> blogging then that’s a sensible assumption, but most websites aren’t  
> blogs or lists of articles. There doesn’t seem to be a way to edit pages  
> which are composed of many “page sections” each with unique/non-unique  
> content. So if you wanted to have a standard page section that appeared  
> on a restricted set of pages there’s no way you could do it easily.

Anyone has it’s own idea of “CMS” or backend for an application. People  
from  
Django have their “django-admin” and they’re happy with it, so I wrote  
something  
similar for Rails which I’m using on my projects, and I know lots of  
people using it  
on their projects. The project is called Typus.

```
http://github.com/fesplugas/typus

```
