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]

Répondre à