Bonsoir,
j’ai 2 ressources imbriquées :
routes.rb :
map.resources :films do |film|
film.resources :affiches
end
et dans ma vue :
<%=link_to_remote(“Supprimer l’affiche”, {:url => affiches_url(:film_id
=> @film.id, :id => @film.affiche.id), :method => :delete, :confirm =>
“êtes-vous sûr ?”})%>
et voici le code html généré :
Supprimer l’affiche
c’est quoi cette url pas du tout rest : /films/1/affiches?id=9
ne devrait-elle pas être plutôt de la forme : /films/1/affiches/9 ?
du coûp, forcement cela ne fonctionne pas très bien…
quelqu’un a t’il une idée ?
JD
On Nov 7, 2007 5:42 PM, Jérémy Dierx [email protected] wrote:
{asynchronous:true, evalScripts:true, method:‘delete’}); }; return
false;">Supprimer l’affiche
c’est quoi cette url pas du tout rest : /films/1/affiches?id=9
ne devrait-elle pas être plutôt de la forme : /films/1/affiches/9 ?
du coûp, forcement cela ne fonctionne pas très bien…
quelqu’un a t’il une idée ?
JD
Je ne suis pas sur que cela change grand chose, mais essaie :
affiches_url(@film, @film.affiche)
–
Fabien J.
Le jeudi 08 novembre 2007 à 12:00 +0100, Fabien J. a écrit :
end
Ajax.Request(‘http://localhost:3007/films/1/affiches?id=9’,
JD
Je ne suis pas sur que cela change grand chose, mais essaie :
affiches_url(@film, @film.affiche)
Merci Fabien pour ton aide. Non cela ne fonctionne pas et j’ai compris
pourquoi : problème de singulier sur la ressource affiche :-/
du coup, la déclaration dans mon routes.rb devient :
map.resources :films do |film|
film.resources :affiches, :singular => ‘affiche’
end
Le dicton Rails du jour : Méfiez-vous des singuliers-pluriels ou codez
en anglais !
Jérémy :
c’est quoi cette url pas du tout rest : /films/1/affiches?id=9
Cet url est tout à fait restful-compliant à partir du moment
où ça correspond à une ressource et que l’on peut appliquer
les verbes HTTP.
Rien n’empêche d’écrire une appli Rails qui propose une api REST
et qui utilise ce genre d’urls.
Est-ce que ces urls sont jolis (pretty url) ? non. Est-ce que
çasuit les conventions de Rails en matière de ressources ? non.
ne devrait-elle pas être plutôt de la forme : /films/1/affiches/9 ?
du coûp, forcement cela ne fonctionne pas très bien…
quelqu’un a t’il une idée ?
film_affiches_url(@film, @affiche)
plus tard :
Merci Fabien pour ton aide. Non cela ne fonctionne pas et j’ai compris
pourquoi : problème de singulier sur la ressource affiche :-/
Coïncidence, Patrick avait un problème avec ‘fiche’ juste quelques jours
avant :
http://groups.google.com/group/railsfrance/browse_thread/thread/bd530f8022e5b585/12cfef8572e4c401#12cfef8572e4c401
du coup, la déclaration dans mon routes.rb devient :
map.resources :films do |film|
film.resources :affiches, :singular => ‘affiche’
end
Le dicton Rails du jour : Méfiez-vous des singuliers-pluriels ou codez en anglais !
Méfiez-vous des pieuvres.
– Jean-François.
–
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)
Jérémy :
rake aborted!
uninitialized constant Inflector
si je commente mon inflection, biensur ce message disparait.
Une idée ?
tu es sûr que tu as mis ce code à la fin d’environment.rb et non
à l’intérieur du block attaché à l’appel de Rails::Initializer.run ?
– Jean-François.
–
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)
Le mercredi 14 novembre 2007 à 21:44 +0100, Jean-François Trân a écrit :
Est-ce que ces urls sont jolis (pretty url) ? non. Est-ce que ça
du coup, la déclaration dans mon routes.rb devient :
map.resources :films do |film|
film.resources :affiches, :singular => ‘affiche’
end
Le dicton Rails du jour : Méfiez-vous des singuliers-pluriels ou codez en anglais !
Méfiez-vous des pieuvres.
Je m’en méfierai à présent.
Par contre, depuis que j’ai ajouté ma nouvelle règle d’inflection dans
environment.rb :
Inflector.inflections do |inflect|
inflect.irregular ‘affiche’, ‘affiches’
end
quand je lance un rake db:migrate ou même une generate, j’obtiens le
message d’erreur suivant :
rake aborted!
uninitialized constant Inflector
si je commente mon inflection, biensur ce message disparait.
Une idée ?
JD
Le jeudi 15 novembre 2007 à 13:07 +0100, Jean-François Trân a écrit :
le
à l’intérieur du block attaché à l’appel de Rails::Initializer.run ?
Super merci JF !
Effectivement mon inflection se trouvait à l’intérieur de l’appel de
Rails::Initializer.run
Par contre, là où ça devient vicieux, c’est que j’ai suivi le code
d’exemple commenter dans environment.rb. En effet, par défaut, lors de
la création d’un projet (rails myapp), l’exemple d’inflection se trouve
à l’intérieur de Rails::Initializer.run…
JD