Bonjour à tous,

Je dois adapter une application pour passer de Rails 1 à 2, et j'ai des difficultés avec la création des formulaires.

Ancienne syntaxe:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<%= start_form_tag :action => 'update', :id => @locale %>
  <%= render :partial => 'form' %>
  <%= submit_tag 'Enregistrer', :class => 'bouton' %>
<%= end_form_tag %>
qui me renvoit l'erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
NoMethodError in Locale#edit
Showing locale/edit.rhtml where line #3 raised:
undefined method `start_form_tag' for #<ActionView::Base:0xb6ec4e68>
Extracted source (around line #3):
 
1: <h1>Modifier une locale</h1>
2: 
3: <%= start_form_tag :action => 'update', :id => @locale %>
4:   <%= render :partial => 'form' %>
5:   <%= submit_tag 'Enregistrer', :class => 'bouton' %>
6: <%= end_form_tag %>
Après bien des errements, ma page arrive à être chargée sans erreur avec ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<% form_tag('/locale/update', :id => @locale.id ) do -%>
  <%= render :partial => 'form' %>
  <%= submit_tag 'Enregistrer', :class => 'bouton' %>
<% end -%>

Mais il me donne en html:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<form action="/locale/update" id="36" method="post">
alors qu'il devrait donner

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<form action="/locale/update/36" method="post">
ce qui a pour effet que l'update n'est pas possible:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ActiveRecord::RecordNotFound in LocaleController#update
Couldn't find Locale without an ID
Quelle est à présent la procédure à suivre pour ces formulaires, que j'aimerais ne pas coder en brut dans la page ?

Merci d'avance,

Gauthier