Ruby script/generate scaffold_resource

J’ai un truc vraiment bizarre :

Quand je fais “ruby script/generate scaffold_resource fiche” dans un
tout nouveau projet, puis “rake db:migrate” et que j’essaie d’accéder Ã
/fiches j’ai

undefined local variable or method `new_fiche_path’ for
#<#Class:0x336c664:0x336c5ec>

Si je fais exactement la même chose mais avec un autre nom de modèle
exemple : “ruby script/generate scaffold_resource produit” puis “rake
db:migrate”

Ca fonctionne nikel

C’est quoi le problème avec le mot “fiche” ?? réservé ? J’ai rien trouvé

une idée ?

info:
ruby 1.8.6
Rails 1.2.5

Gem:
actionmailer (1.3.5, 1.3.4, 1.3.3)
actionpack (1.13.5, 1.13.4, 1.13.3)
actionwebservice (1.2.5, 1.2.4, 1.2.3)
activerecord (1.15.5, 1.15.4, 1.15.3)
activesupport (1.4.4, 1.4.3, 1.4.2)
fastercsv (1.2.1)
hoe (1.3.0)
rails (1.2.5, 1.2.4, 1.2.3)
rake (0.7.3)
redgreen (1.2.2)
rmagick (1.15.10)
rubyforge (0.4.4)
rubyzip (0.9.1)
sources (0.0.1)
sqlite3-ruby (1.2.1)
unicode (0.1)
ZenTest (3.6.1)

Patrick :

Quand je fais “ruby script/generate scaffold_resource fiche” dans un
tout nouveau projet, puis “rake db:migrate” et que j’essaie d’accéder à
/fiches j’ai

undefined local variable or method `new_fiche_path’ for
#<#Class:0x336c664:0x336c5ec>

J’ai 2 choses à te proposer :

1/ Dans config/environment.rb

Après l’appel Rails::Initializer.run, mettre en bas du fichier :

Inflector.inflections { |inflect| inflect.irregular ‘fiche’, ‘fiches’ }
ActionController::Routing::Routes.reload

Normalement pour 2.0, tu pourras supprimer la seconde ligne.

ou :

2/ Dans config/routes.rb

map.resources :fiches, :singular => :fiche

mmmh à vrai dire, tout en gardant la règle d’Inflection.

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

Jean-François Trân wrote:
Normalement pour 2.0, tu pourras supprimer la seconde ligne.

ou :

2/ Dans config/routes.rb
map.resources :fiches, :singular => :fiche

mmmh � vrai dire, tout en gardant la r�gle d’Inflection.

Haaa… merci Jean-François !
La solution 2 fonctionne !!