# Saving changes without publishing

**URL:** <https://www.ruby-forum.com/t/saving-changes-without-publishing/93196>\
**Category:** Radiant CMS\
**Created:** [April 29, 2007, 2:34am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196 "2007-04-29T02:34:04Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 29, 2007, 2:34am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/1 "2007-04-29T02:34:04Z")

</div>

I’m wanting to see if people have a method of doing the following using  
existing features or if I need to write an extension:

‘Draft’ pages don’t appear on the public site but ‘Published’ ones do.  
Is  
there a way to keep a page published but work on (and save) a draft of  
changes? That is, if you’re making big changes to a page and want to  
save  
those changes, but aren’t ready to show the world yet, how do you handle  
that?

I imagine it wouldn’t be hard to work up an extension that uses  
acts\_as\_draftable on Page. Just wanted to make sure I wasn’t missing  
something obvious.

Jason

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 29, 2007, 2:47am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/2 "2007-04-29T02:47:05Z")

</div>

On 4/29/07, Jason G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> That is, if you’re making big changes to a page and want to save those  
> changes, but aren’t ready to show the world yet, how do you handle that?

I use my preferred text editor and the filesystem. It doesn’t happen  
often,  
though … When I make changes to content I do it because I _want_  
people to  
see it.

acts\_as\_draftable? Never knew of it.

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 29, 2007, 4:29am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/3 "2007-04-29T04:29:59Z")

</div>

Mislav Marohniï¿½? wrote:

> acts\_as\_draftable? Never knew of it.

Me neither. Apparently there is an acts\_as\_versioned by the same author  
and both look pretty cool.

Not sure what the difference is but googling turned up some interesting  
write-ups. Anyone know how well/if radiant would take to this?

Even better, anyone interested in crafting an extension to add  
versioning functionality to radiant?

-Chris

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 29, 2007, 10:50am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/4 "2007-04-29T10:50:31Z")

</div>

On 4/29/07, Chris P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > acts\_as\_draftable? Never knew of it.
> 
> Me neither. Apparently there is an acts\_as\_versioned by the same author  
> and both look pretty cool.

That must be Rick O… The latter plugin is well-known.

Even better, anyone interested in crafting an extension to add

> versioning functionality to radiant?

Would be cool, but doesn’t solve the original poster’s problem.

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 29, 2007, 6:14pm UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/5 "2007-04-29T18:14:14Z")

</div>

I’ll probably be working on a Radiant project in the next few months  
that needs this functionality. Hopefully it can be pushed upstream into  
the core or an extension. In the meantime, I’ll look at those plugins  
and see if they’ll work.

Sean

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 29, 2007, 8:50pm UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/6 "2007-04-29T20:50:27Z")

</div>

> Even better, anyone interested in crafting an extension to add

versioning functionality to radiant?

> 

I want this too, but probably won’t get to it for a month. Hoping  
someone  
beats me to it. 🙂

Drafting and versioning are independent features and should probably be  
implemented separately. I hate the CMSes that let 100 users have 50  
versions of the same page (all 5000 in conflict, no doubt) and that let  
you  
make any historical version live. Who does that? No, what we need is  
ONE  
draft version (which is how acts\_as\_draftable works) and the ability to  
“undo” (rollback the latest version). That will meet 90% of people’s  
needs  
without adding too much complexity.

When I make changes to content I do it because I _want_ people to

> see it.

Me too, but usually there are a couple iterations before I get it right.  
Either my Textile didn’t render right or I forgot to float an image or  
something. I usually find myself working with Radiant in one window and  
the  
site in another (to make sure it looks OK), hoping no users hit the page  
while it’s in limbo.

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 30, 2007, 12:19am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/7 "2007-04-30T00:19:25Z")

</div>

Both plugins are by Rick O.:  
[http://agilewebdevelopment.com/plugins/acts\_as\_draftable](http://agilewebdevelopment.com/plugins/acts_as_draftable)  
[http://agilewebdevelopment.com/plugins/acts\_as\_versioned](http://agilewebdevelopment.com/plugins/acts_as_versioned)

Jason G. wrote:

> …what we need is ONE draft version (which is how  
> acts\_as\_draftable works) and the ability to “undo” (rollback  
> the latest version). That will meet 90% of people’s needs  
> without adding too much complexity.

That sound’s likely.

However, the other common versioning “need” would be something similar  
to subversion’s tagging so clients could mark the current version of the  
site and revert back it if needed.

-Chris

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 30, 2007, 2:04am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/8 "2007-04-30T02:04:51Z")

</div>

On 4/29/07, Jason G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Drafting and versioning are independent features and should probably be  
> implemented separately. No, what we need is ONE  
> draft version (which is how acts\_as\_draftable works) and the ability to  
> “undo” (rollback the latest version). That will meet 90% of people’s needs  
> without adding too much complexity.

This is definitely the way to do it. We learned this the hard way with  
our project (sorry, not in Radiant so nothing to share). More then one  
“draft” confuses people and almost no one rollbacks very far if at  
all. Anything more (e.g. a snapshot) sounds nice but you’ll just add a  
level of complexity that not’s worth maintaining going forward.

–

Proud supporter of DC United

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 30, 2007, 4:47am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/9 "2007-04-30T04:47:00Z")

</div>

Hello all again!

I had posted an email previously, both a thanks and a  
suggestion/question on availability. I’m kind of curious, just for the  
near future.

On a sidenote, I’ve started having a need for delayed postings (IE:-  
show up at a specific time, including a page cache clear.) and wondering  
if there is either a plan to incorporate it soon or if someone out there  
is working on an extension to do similar to it. I figured that it’d be  
fairly simple through use of the published\_at attribute by simply  
looking for the date; if it is before the date, it is excluded, if not,  
it’s included; And then add a simple drop-down box on it. A modification  
to r:children:each for a tag such as delayed=“false” – Set it up so it  
defaults to true but allow website developers to turn it off for  
whatever reasons.

Hope someone could give me some insight 🙂 It’d be greatly appreciated!

Andrew K.

---

<div class="post-metadata">

**Author:** ![jasongarber](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/977dab/32.png) [@jasongarber](https://www.ruby-forum.com/u/jasongarber)\
**Post date:** [April 30, 2007, 6:08am UTC](https://www.ruby-forum.com/t/saving-changes-without-publishing/93196/10 "2007-04-30T06:08:22Z")

</div>

Dave O. wrote:

> Anything more (e.g. a snapshot) sounds nice but you’ll just add  
> a level of complexity that not worth maintaining going forward.

Come to think of it, once import/export is fully functional, if my  
clients could backup their site using export and recover with import,  
the whole rollback thing becomes kinda unnecessary.

-Chris
