undefined method `to_sym' for nil:NilClass
J'ai cette erreur que dans ma page d'édition de mon nifty_scaffold.RoR - Echafaudage - Méthode unedfined « de to_sym » pour nul: NilClass seulement une erreur dans la méthode d'édition
C'est _form.html.erb
<% form_for @progress do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :date %><br />
<%= f.date_select :date %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_area :description %>
</p>
<p>
<%= f.label :weight %><br />
<%= f.text_field :weight %>
</p>
<p>
<%= f.label :fatpercentage %><br />
<%= f.text_field :fatpercentage %>
</p>
<p>
<%= f.label :height %><br />
<%= f.text_field :height %>
</p>
<p><%= f.submit "Submit" %></p>
<% end %>
C'est edit.html.erb
<% title "Edit Progress" %>
<%= render :partial => 'form' %>
Et voici mon contrôleur:
class ProgressesController < ApplicationController
def new
@progress = Progress.new
end
def create
@progress = Progress.new(params[:progress])
if @progress.save
flash[:notice] = "Successfully created progress."
redirect_to progresses_url
else
render :action => 'new'
end
end
def edit
@progress = Progress.find(params[:id])
end
def update
@progress = Progress.find(params[:id])
if @progress.update_attributes(params[:progress])
flash[:notice] = "Successfully updated progress."
redirect_to progresses_url
else
render :action => 'edit'
end
end
def index
@progresses = Progress.all
end
end
Quoi de mal? Je n'arrive pas à trouver mon erreur: -S. Il semble que cela: - récupère les données correctement - ne peut pas insérer les valeurs db dans les champs "edit view". J'utilise: float,: string et: date comme types de données dans l'échafaudage.
Juste pour le poste terminé, ceci est mon erreur: NoMethodError # modifier dans Progresse
Showing app/views/progresses/edit.html.erb where line #3 raised:
undefined method `to_sym' for nil:NilClass
Extracted source (around line #3):
1: <% title "Edit Progress" %>
2:
3: <% form_for @progress do |f| %>
4: <%= f.error_messages %>
5: <p>
6: <%= f.label :date %><br />
À la ligne 6 du journal des extrémités code ...
Edit: Il semble être une erreur dans mes routes.rb. Ce est actuellement commenté:
map.edit_progress "edit_progress", :controller => "progresses", :action => "edit"
quand je décommentez, il donne une erreur aussi à mon avis d'index. Pour une raison quelconque, cela s'appelle: 'http://127.0.0.1:3001/progresses/1/edit', ne devrait-il pas être: 'http://127.0.0.1:3001/progresses/edit/1'? Même s'il semble que la "vue d'édition" est appelée ... C'est peut-être la raison pour laquelle les valeurs ne sont pas remplies, à mon avis ...
Quelle pourrait être ma solution?
Je ne reçois pas d'erreur lorsque je remplace la "vue d'édition" par du texte brut. et avec raise @ progress.inspect je reçois toutes les valeurs (à savoir: #) Quelle est la prochaine étape? –
NicoJuicy
Avez-vous un ensemble de ressources pour la progression dans votre fichier 'config/routes.rb'? Si ce n'est pas le cas, ajoutez 'map.resources: progresses'. Si cela ne fonctionne pas, essayez de remplacer <% form_for @progress do | f | %> 'avec' <% form_for: progress,: url => {: action => "mise à jour"} do | f | %> 'dans votre vue d'édition – nas
map.resources: progresses est déjà défini. Ma vue d'édition affiche la forme partielle 'formulaire'. Si je remplace votre code par le courant, cela ne fonctionne toujours pas (syntaxError). – NicoJuicy