RoR - Gerüst - unedfined Methode ‚to_sym‘ für nil: NilClass nur einen Fehler im Bearbeitungsverfahren

StackOverflow https://stackoverflow.com/questions/2278261

Frage

undefined method `to_sym' for nil:NilClass

Ich habe diesen Fehler nur in meiner bearbeiten Seite meiner nifty_scaffold.

Dies ist _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 %>

Dies ist edit.html.erb

 <% title "Edit Progress" %>
 <%= render :partial => 'form' %>

Und das ist mein Controller:

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

Was könnte falsch sein? Ich kann nicht scheinen, um meine Fehler zu finden: ES. Es scheint, dass es: - holt die Daten korrekt -. Kann nicht die db-Werte in die „Bearbeitungsansicht“ Felder einfügen

Ich verwende: float,: string und: Datum als Datentypen in dem Gerüst.

Nur für das fertiggestellte Post, das ist mein Fehler: NoMethodError in # bearbeiten macht Fortschritte

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 />

In Zeile 6 das Protokoll des Code Endes ...

Edit: Es scheint ein Fehler in meinem routes.rb zu sein. Dies wird zur Zeit kommentiert:

 map.edit_progress "edit_progress", :controller => "progresses", :action => "edit"

, wenn ich Kommentar- es, es gibt einen Fehler auch in meiner Indexansicht.

Aus irgendeinem Grund heißt dies: ' http://127.0.0.1:3001/progresses/1/edit ', sollte es nicht sein: ‚ http://127.0.0.1:3001/progresses/edit/1 ‘? Auch wenn es scheint, dass die „Bearbeitungsansicht“ genannt wird ... Vielleicht ist dies der Grund, warum die Werte in meiner Ansicht nach nicht gefüllt sind, ...

Was meine Lösung sein könnte?

War es hilfreich?

Lösung

Ich werde vorschlagen, zwei Schritt Debuggen hier:

  1. Entfernen Sie den Code aus der Bearbeitungsansicht und ein etwas Klartext in ihm hinzuzufügen, greifen dann Ihre Seite im Browser und sehen, ob Sie einen Fehler oder ein neue Fehlermeldung erhalten oder keinen Fehler

  2. Wenn Sie einen neuen Fehler bekommen, dann könnte es Ihnen helfen, in das Problem zu lösen oder in Ihrer Controller bearbeitet Aktion Erhöhung der @progress, um zu sehen, ob er eingestellt wird

    def edit
      @progress = Progress.find(params[:id])
      raise @progress.inspect
    end
    

Diese beiden Schritte können Ihnen helfen, das Problem bei der Lösung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top