Not sure if it's possible in your architecture, but we are working a
lot with namespaces.
E.g. you could have a Customs::ShipmentParsChecksController and a
Customs::SomeOtherController etc. this would group your controllers,
models and views into related sections.
Your views then would look like:
app
 - views
  - customs
   + shipment_pars_checks
   + some_other

Best, Daniel

On Oct 28, 8:38 pm, James Byrne <[email protected]> wrote:
> Marnen Laibow-Koser wrote in post #957913:
>
> > To me too -- if we're talking *files*.  But again: that should never
> > happen.  Let's see your views and controllers.  I suspect you are trying
> > to cram too much into a single controller, and ending up with lots of
> > actions and views as a result.
>
> I mis-wrote.  As you picked up I really meant view directories. But, why
> should it never happen for view directories?
>
> I am writing an application that handles international freight bookings,
> movements and customs formalities including edi cusdec transmissions.
> That is never ever going to fit into a handful of controllers.  In fact,
> but for foreign exchange, most controllers possess only the basic index,
> show, new, create, and destroy actions.  Many do not have all of these.
>
> A sample controller, one of the more complex ones, is given below:
>
> class CustomsShipmentParsChecksController < ApplicationController
>
>   skip_before_filter  :authenticated
>   skip_before_filter  :authorised
>
>   # POST /collection
>   # POST /collection.xml
>   def create
>
>     respond_to do |format|
>       if @manifest = CaCustomsManifest.find_by_ccdn(
>             params[:ca_customs_manifest][:ccdn].strip)
>
>         @shipment = @manifest.ca_customs_shipment
>         @entry = @shipment.ca_customs_entry
>
>         if
> @manifest.ca_customs_shipment.ca_customs_entry.is_across_accepted
>           flash[:info] = accepted_message
>           # render simply uses the template specified by the :action key
>           # without calling the method.
>           format.html { render  :action => "show" }
>           format.xml  { render  :xml => @shipment,
>                                 :status => :accepted,
>                                 :location =>
> :customs_shipment_pars_check }
>         else
>           flash[:notice] = not_accepted_message
>           format.html { render  :action => "show", :id => @shipment.id }
>           format.xml  { render  :xml => @manifest,
>                                 :status => :found,
>                                 :location =>
> :customs_shipment_pars_check }
>         end
>       else
>         new # build a dummy record complex to allow display of messages
>         manifest.ccdn = params[:ca_customs_manifest][:ccdn].strip
>         flash[:notice] = not_found_message
>         flash[:warn] = contact_message
>         format.html { render  :action => "new" }
>         format.xml  { render  :xml => @manifest.errors,
>                               :status => :not_found }
>       end
>     end
>   end
>
>   # DELETE /collection/:id
>   # DELETE /collection/:id.xml
>   def delete
>     show
>   end
>
>   # Do not raise pointless not found errors
>   # GET /collection/:id/edit
>   def edit
>     show
>   end
>
>   # GET /collection/new
>   # GET /collection/new.xml
>   def new
>     @shipment = CaCustomsShipment.new
>     @entry = @shipment.build_ca_customs_entry
>     @manifest = @shipment.ca_customs_manifests.build
>   end
>
>   # GET /collection
>   # GET /collection.xml
>   def index
>     new
>   end
>
>   # GET /collection/:id
>   # GET /collection/:id.xml
>   def show
>     get_shipment
>   end
>
> private
>  ...
>
> end
>
> --
> Posted viahttp://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to