With Rails Connector (version 6.7.3 or higher) you can use dedicated controllers for every CMS file format. Creating a controller for a specific file format only requires that the controller class is created.
Common use cases are:
POSTrequests to implement, for example, web forms via CMS files
For every CMS file to be loaded, the Rails Connector looks for a controller whose name matches the name of the current CMS format. For example, a file with the
Publication format would be delivered by a controller named
PublicationController that descends from
RailsConnector::DefaultCmsController. If no such controller exists,
CmsController is used as a default.
index action is still used as the default action to deliver CMS data. Custom actions can be evoked by overwriting the
controller_action_name method of the
The Rails Connector provides a special method that is useful when writing tests for CMS related controllers. Use
request.for_cms_object to define which CMS object should be loaded in your test. The following example uses the
rspec test framework:
describe CmsController, "request for HTML document" do before do controller.stub!(:ensure_object_is_permitted).and_return(true) controller.stub!(:ensure_object_is_active).and_return(true) controller.stub!(:set_google_expire_header).and_return(true) @obj = mock_model(Obj, :mime_type => 'text/html', :permalink => 'dummy') request.for_cms_object(@obj) end it "should render the view" do get 'index' response.should be_success end end