J'ai édité le post avec les routes adéquates, faute de frappe. Hormis ça, je comprend pas trop ton "pas de solution propre possible".
Avec des ressources nestées "classiques" (comprendre pas de pluriels tordus), j'ai pas de soucis. Si j'ai une relation 1-n entre utilisateurs et slips, ça me donne :
Code :
map.resources :users do |user| user.resources :slips end
|
Pour une action quelconque d'un utilisateur, si je veux y proposer la création d'un nouveau slip associé à mon utilisateur, j'ai dans le contrôleur :
Code :
def mon_action @user = User.mon_user @new_slip = @user.slips.build end
|
Et dans la vue associée, je peux générer mon formulaire d'ajout d'un slip pour l'utilisateur en question avec :
Code :
form_for [@user, @new_slip] do |f| ...
|
Et ça fonctionne parfaitement tant que j'ai pas un cas tordu comme le mien. Pour y revenir justement, le problème ne vient pas de la création du path mais plutôt d'y retrouver ses petits. Dans le cas d'anus comme invariant, anus_path peut aussi bien renvoyer à pluriel_path qu'à singulier_path (même si théoriquement, pour le dernier cas, il faut un argument, d'où mon attente sur le fait que ça fonctionne). Problème résolu par ailleurs en modifiant mes inflections, ainsi "anuses" est le pluriel d'"anus" dans mon appli.
Ceci dit, c'est pas vraiment d'anus dont il est question, je vous rassure...