Yeah, so if you had a "photos" controller and you want people to be
able to submit photos through your Radiant site:

Request -> Action -> Radiant Page Used for Rendering
/photos -> index -> /photos
/photos/29 -> show -> /photos/show
/photos/29/edit -> edit -> /photos/edit
/photos/new -> new -> /photos/new
/photos/recent -> recent -> /photos/recent

You can change the page to load by passing the :action option, just
like the regular render method.

On Thu, Jan 20, 2011 at 7:09 PM, Haselwanter Edmund
<edm...@haselwanter.com> wrote:
>
> On 20.01.2011, at 23:02, nx wrote:
>
>> share_layout, as far as I know (haven't used it), uses templates (ERB,
>> Haml, whatever) rendered from the action and wraps the rendered
>> template in the Radiant layout.
>>
>> render_radiant, on the other hand, uses a Radiant page matching the
>> path of the /controller/action as the "template" in this context. So
>> you can use Radiant for the entire View part of the extension.
>> render_radiant assigns data from the action to the page's context, so
>> all your Radius tags are rendered with the requested action's state.
>>
>> I like this method because I'm putting more Controller-like logic back
>> into the controller, instead of hacking Page.process or subclassing
>> Page to get data posted from forms and query params.
>>
>> Does that clear up the difference any?
>
> Love that idea. Must wrap my head around the matching slug vs. route stuff but
> that's really useful :-)
>
>>
>> On Thu, Jan 20, 2011 at 4:38 PM, swartz <netv...@gmail.com> wrote:
>>> I gave a very brief look at your extension.
>>> I do not mean to devalue your contribution(in fact, thank you for it),
>>> but isn't this what share_layout extension does?
>>> https://github.com/radiant/radiant-share-layouts-extension
>>>
>>> Also check spanner's fork:
>>> https://github.com/spanner/radiant-share-layouts-extension
>>>
>>> --
>>> Swartz
>>>
>>> On Jan 19, 9:18 pm, nx <n...@nu-ex.com> wrote:
>>>> I wanted to use ActionController like I always have, except render the
>>>> action with Radiant. So I wrote a gem that overrides "render" to take
>>>> instance variables and methods like "params" and "flash" from the
>>>> action and assign them to the page context to be accessible from my
>>>> Radius tags. It uses a Radiant page that matches the URL of the
>>>> request for rendering. Here's an example from the README:
>>>>
>>>> EventsController < ActionController::Base
>>>>
>>>>   def index
>>>>     @events = Event.all
>>>>     render :radiant
>>>>   end
>>>>
>>>>   def show
>>>>     @event = Event.find(params[:id])
>>>>     render :radiant, :locals => { :cool_event => @event.cool? }
>>>>   end
>>>>
>>>> end
>>>>
>>>> So a request for "/events/23" will use a Page with the url
>>>> "/events/show" and will load tag.locals.event and
>>>> tag.locals.cool_event with the values given in the action.
>>>>
>>>> You can override default page properties by passing them into the main
>>>> :radiant option:
>>>>
>>>>   render :radiant => { :title => "Title Override", :breadcrumb => "My 
>>>> Page" }
>>>>
>>>> This gem also opens up the possibility of handling different formats, like:
>>>>
>>>>    respond_to do |format|
>>>>      format.html { render :radiant }
>>>>      format.json  { render :json }
>>>>    end
>>>>
>>>> Just do "gem install render_radiant" and require it in your
>>>> extension_config to install. Github:http://github.com/nuex/render_radiant.
>>>>
>>>> Thought someone else might be interested in building custom extensions 
>>>> this way.
>>>
>
> --
> DI Edmund Haselwanter, edm...@haselwanter.com, http://edmund.haselwanter.com/
> http://www.iteh.at | http://facebook.com/iTeh.solutions | 
> http://at.linkedin.com/in/haselwanteredmund
>
>
>
>
>
>

Reply via email to