Problème avec Restful_authentication?

Bonjour,

Je reviens vers vous car après avoir disparu mon problème est revenu
pas tout à fait au même endroit mais très similaire Pour ceux qui
avait suivi, mon action ‘created’ (remplaçant ‘create’) est bien
executé mais le redirect vers une seconde étape ne fonctionne pas et
quand je regarde les logs on dirait qu’il faut un redirect/boucle sur
l’action created. Sachant qu’en local cela fonctionne sans problème

Si quelqu’un a le courage de regarder je veux bien montrer le source
de mon fichier routes (une quarantaine de ligne) ainsi que l’action
created (90 lignes).

Nicolas

Le 18 février 2009 23:18, Nicolas a écrit :

Si quelqu’un a le courage de regarder je veux bien montrer le source
de mon fichier routes (une quarantaine de ligne) ainsi que l’action
created (90 lignes).

90 lignes ?

On n’a peut-être pas trouvé TON bug mais on vient de trouver
UN bug.

– Jean-François.


http://twitter.com/underflow_

On n’a peut-être pas trouvé TON bug mais on vient de trouver
UN bug.

Ah c’est clair que je ne revendique pas le code le plus “pur” et que
si quelqu’un voulait “auditer” mon code, j’en apprendrai beaucoup mais
ça c’est une autre histoire …

2009/2/19 Tranquiliste :

On n’a peut-être pas trouvé TON bug mais on vient de trouver
UN bug.

Ah c’est clair que je ne revendique pas le code le plus “pur”

Ce n’est pas forcément une question de pureté, concept
auquel je ne suis pas des plus fans, à l’heure du métissage
et des merges.

C’est le fait d’avoir du code plus facilement maintenable, débuggable,
compréhensible, test-friendly, separation of concerns-friendly,
voire DRY-friendly. Du code moins fragile et plus robuste.
ça relève plus de bonnes pratiques en fait (c’est quoi du code
Ruby pur ??)

et que si quelqu’un voulait “auditer” mon code, j’en
apprendrai beaucoup mais ça c’est une autre histoire …

Il faudrait que tu nous montres 1/ le CMPRP (code minimal
pour reproduire le problème) 2/ faire qq vérifs au niveau du
code HTML généré (et vérifier/varier ton form_for)
3/ écrire le test décrivant le pb
4/ Ne pas oublier que en RESTful Rails, les actions peuvent
être liées : GET /articles/1, POST /articles/1, DELETE /articles/1
PUT /articles/1, c’est la même url mais pas le même verbe HTTP !

-- Jean-François.


http://twitter.com/underflow_

2009/2/22 Tranquiliste :

Bon j’ai fait quelques tests complémentaires et j’ai l’impression
que ça vient quand même de mon fichier routes qui pose
des problèmes. J’ai isolé une route qui fonctionne bien en local
mais ne fonctionne
pas en production. Il s’agit de : map.error
Note : j’ai essayé sans les “default routes” et ça ne change rien

C’est à dire que tu arrives à reproduire le pb avec un config/routes.rb
réduit au minimum (en incluant error) ?

J’attends toujours que tu donnes le CPMRP (code minimal pour
reproduire le problème) que j’ai la flemme d’écrire.

(sans la méthode dans le contrôleur de 90 lignes, mais réduit
au maximum)

– Jean-François.


http://twitter.com/underflow_

Bon j’ai fait quelques tests complémentaires et j’ai l’impression que
ça vient quand même de mon fichier routes qui pose des problèmes.
J’ai isolé une route qui fonctionne bien en local mais ne fonctionne
pas en production. Il s’agit de : map.error
Note : j’ai essayé sans les “default routes” et ça ne change rien

Je vous joins le fichier Route complet, au cas où quelq’un verrai une
erreur évidente.

Nicolas

ActionController::Routing::Routes.draw do |map|
map.resources :users

map.resource :session
map.resources :helps
map.resources :buildings, :member => {:join_info => :post} do |
building|
building.resources :lots
building.resources :lot_owners
building.resources :building_informations
building.resources :log_entries
building.resources :topics , :member => {:add_comment
=> :post} , :collection => {:tag_topic => :get}
building.resources :companies
building.resources :categories
building.resources :archives
building.resources :send_mail
building.resources :users, :controller => “buildings/users” , :new
=> {:add_message => :post}#
building.resources :blocks, :collection => {:validate => :get}
end
map.home ‘’, :controller => “buildings”
map.created ‘created’, :controller => “buildings”, :action =>
“created”
map.contact ‘contact’, :controller => “buildings”, :action =>
“contact”
map.join ‘join’, :controller => “buildings”, :action => “join”
map.home_text ‘home_text/:home_text’, :controller =>
“buildings”, :action => “home_text”
map.show_similar_buildings ‘show_similar_buildings’, :controller =>
“buildings”, :action => “show_similar_buildings”
map.admin ‘admin’, :controller => “admin”, :action => “index”
map.close ‘close’, :controller => “buildings”, :action =>
“close_notice”
map.news ‘Nouvelles’, :controller => “buildings”, :action => “news”
map.login ‘Login’, :controller => “sessions”, :action => “new”
map.logout ‘/logout’, :controller => ‘sessions’, :action =>
‘destroy’
map.signup ‘/signup’, :controller => ‘users’, :action => ‘new’
map.forgot ‘/forgot’, :controller => ‘users’, :action
=> ‘forgot’
map.change_psw ‘/changepsw’, :controller =>
‘users’, :action => ‘change_psw’
map.reset ‘reset/:reset_code’, :controller =>
‘users’, :action => ‘reset’
map.activate ‘/activate/:activation_code’, :controller =>
‘users’, :action => ‘activate’
#routes used with Restful_acl
map.error ‘/error/:origin’, :controller => ‘buildings’, :action =>
‘error’
map.denied ‘/denied/:origin’, :controller => ‘buildings’, :action =>
‘denied’

Install the default routes as the lowest priority.

map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
end

C’est à dire que tu arrives à reproduire le pb avec un config/routes.rb
réduit au minimum (en incluant error) ?

Non, j’ai juste noté que cette “route” fonctionne en local mais pas
dans mon environnement de prod

J’attends toujours que tu donnes le CPMRP (code minimal pour
reproduire le problème) que j’ai la flemme d’écrire.

(sans la méthode dans le contrôleur de 90 lignes, mais réduit
au maximum)

Je vais m’y mettre mais ce n’est pas facile et long car je suis obligé
de tester en local puis transférer en prod pour voir si ça marche ou
pas.

Pour info, j’ai trouvé la cause de mon erreur.
En fait j’avais laissé un “puts” dans mon code et visiblement
l’écriture sur la console avec mod_fcgi fait planter et est un
problème connu.

Merci
Nicolas