Question d'organisation

Bonjour,

Je me pose des questions sur l’organisation de mon dev, et de la
meilleur manière de faire.

Présentation rapide :
dossier commercial => commandes => lignes de commandes
=> factures => lignes de factures

Dans mon dèv, on peut accéder au commandes par exemples soit par le menu
commandes (liste de toutes les commandes), soit depuis un dossier
commercial (pour faire simple).

note j’utilise rails edge activeresource, simplyhelpful.

Pour faire simple tout passe par le controleur de commande mais avec des
routes différentes :

map.resources :orders do|order|
order.resources :order_lines
end

map.resources :orders,:path_prefix => ‘/folder/:folder_id’,
:name_prefix => ‘folder_’

Maintenant pour savoir sur les formulaires de commandes si j’appelle
depuis le controller folder ou directement depuis le controleur order je
fait :
_order.rhtml =>

<% div_for(order) do %>

<%=h order.code%>

// ici je fais le test
<%if params[:controller]!='folder'%>
<span><%= link_to 'Show', order_path(order) %></span>
<span><%= link_to 'Edit', edit_order_path(order) %></span>
<span><%= link_to 'Destroy', order_path(order), :confirm => 'Are you

sure?', :method => :delete %>
<% else %>
<%= link_to ‘Show’, folder_order_path(order.folder,order)
%>

<%= link_to ‘Edit’, folder_edit_order_path(order.folder,order)
%>

<%= link_to ‘Destroy’, folder_order_path(order.folder,order),
:confirm => ‘Are you sure?’, :method => :delete %>

<% end %>

<% end %>

Je ne suis pas très satisfait de bignou, mais il offre la possibilité de
modifier un seul formulaire pour les deux controller.

Votre avis m’interresse beaucoup !!!

Guillaume BELLEGUIC
LES ACCORDEURS DE RESEAUX
e-ngoma / Ker data
4, cours Kennedy
35000 Rennes

[email protected]
http://www.e-ngoma.net

tèl : +33 (0)299 33 87 48
fax : +33 (0)299 33 97 31

RCS Rennes 487 799 892


Guillaume :

Maintenant pour savoir sur les formulaires de commandes si j’appelle
depuis le controller folder ou directement depuis le controleur order je
fait :
[snip]

Je ne suis pas très satisfait de bignou, mais il offre la possibilité de
modifier un seul formulaire pour les deux controller.

Pour faire quelque chose de plus DRY, j’utiliserais l’opérateur splat et
j’écrirais quelque chose comme :

<% args_for_order_path = controller.controller_name != ‘folder’ ?
[order] :
[order.folder, order] -%>

puis :
<%= link_to ‘Show’, order_path(*args_for_order_path) %>
etc.

Tu testeras pour moi :slight_smile:

1/ après, choisir un nom de variable plus court,
2/ en faire un helper.

– Jean-François.