This post originated from an RSS feed registered with Ruby Buzz
by Jeremy Voorhis.
Original Post: Prototyping With Rapid Resource: A Proof of Concept
Feed Title: JVoorhis
Feed URL: http://feeds.feedburner.com/jvoorhis
Feed Description: JVoorhis is a Rubyist in northeast Ohio. He rambles about Ruby on Rails, development practices, other frameworks such as Django, and on other days he is just full of snark.
This is still unreleased, but i am toying with controller macros as a rapid prototyping tool for resources. Just add models, .rhtml, .rjs and .rxml templates.
ActionController::Base#define_actions accepts a parameter which specifies the set of actions to be included. The protected methods resource_name, collection_name, resource, find_collection and find_member provide an api which the actions build upon and may be overridden as needed. Actions may also be overridden piecemeal.
Routes
ActionController::Routing::Routes.draw do |map|
map.resources :entries do |entries|
entries.resources :comments
end
# Install the default route as the lowest priority.
map.connect ':controller/:action/:id'
end
Controllers:
class EntriesController < ApplicationController
define_actions :crud
end
class CommentsController < ApplicationController
define_actions :crud
protected
def find_collection
Comment.find :all,
:conditions => ['entry_id = ?', params[:entry_id],
:order => 'created_at'
end
def find_member
entry = Entry.find params[:entry_id]
entry.comments.find params[:id]
end
end