Je pense qu'on adresse le mauvais problème ici.

Je veux simplement avoir un comportement plus proche de celui de Rails avec
link_to...

Le but n'est en aucun cas de remplacer l'usage des routes nommées. Faire
"ariane.add text, article_path(@article)" doit toujours marcher. Je veux
juste que le comportement soit plus naturel pour ceux qui comme moi font
"link_to text, @article"

Pour répondre à la question sur "new", il sera toujours possible d'utiliser
new_article_path donc je ne vois pas trop où serait le problème.
-- 
Simon COURTOIS
from my phone

On 1 juin 2012, at 10:17, Florian Dutey <[email protected]> wrote:

Et si tu veux un lien vers l'action new, tu fais comment?
Comment ta gem devine qu'il faut faire un new_article_path?

Je vois ce que tu veux faire mais je suis très sceptique parce que:

1) tu te prives de milliards de possibilités à mon sens (en déléguant la
responsabilité du url_for à ta gem)
2) ca m'a l'air très compliqué et trop fortement couplé aux routes.

Question bonus: ca marche avec les engines?!

Le 31 mai 2012 21:33, HappyNoff <[email protected]> a écrit :

> Hello,
>
> Oui justement c'est ma gem ^^ et je veux l'améliorer.
>
> En fait ce n'est pas rare du tout ce dont je parle et parfaitement
> prévisible.
>
> Lorsque l'on fait link_to 'texte', @article c'est la même chose.
> De la même façon, le redirect_to @article utilise le même principe.
> Ça utilise url_for pour générer l'url en utilisant l'url nommée
> article_path et en lui passant @article ce qui donne article_path(@article).
>
> Le souci est justement que url_for tente d'appeler article_path qui n'est
> pas définie dans le contexte d'ariane.
>
> Je viens de trouver une solution qui fonctionne mais qui, à mon sens, est
> complètement dégueulasse ^^
>
> class Base # La classe qui va générer la liste de liens
>   #...
>
>   def method_missing(meth, *args, &block)
>     if meth =~ /(_path|_url)\Z/
>       Rails.application.routes.url_helpers.send(meth, *args, &block)
>     else
>       super
>     end
> end
>
> Dans un sens, c'est plutôt logique mais à tester déjà c'est un peu la mort
> et puis je trouve qu'il y a un petit côté sale dedans.
> Enfin après c'est peut être que moi ^^
>
> Simon COURTOIS
>
>
> On Thursday, May 31, 2012 9:11:36 PM UTC+2, Olivier El Mekki wrote:
>
>> Hello,
>>
>> >    C'est cool mais j'aimerais pousser ᅵa un peu plus loin et
>> permettre de
>> >    faire ceci:
>> >
>> >    <% ariane.add un_model.title, un_model %>
>>
>> ᅵa devrait faire quoi ? La lib ne peut pas dᅵterminer d'elle-mᅵme
>> si tu
>> veux aller vers une action d'index, de show, voir mᅵme une action
>> custom.
>>
>> La possibilitᅵ de faire `form_for @resource` est un cas rare : si on
>> veut un form, c'est qu'on veut modifier un objet. C'est donc soit un
>> create, soit un update, qu'on dᅵtermine en regardant si l'objet est un
>> new_record? ou non.
>>
>> Ici, ce n'est pas devinable de la mᅵme maniᅵre - ᅵa peut ᅵtre
>> n'importe
>> quelle url.
>>
>> Mais je vois que Simon est l'auteur de cette gem, donc je le laisse te
>> rᅵpondre au cas oᅵ :)
>>
>>
>> --
>> Olivier El Mekki.
>>
>  --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]
>

 --
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à