undefined method `Fehler' for nil:NilClass
Hier ist meine Bearbeitete details:
Habe ich meinen controller wie,
class Enr::Rds::SurvRdsapXrefsController < Enr::Controller
def index
@enr_rds_surv_rdsap_xrefs = Enr::Rds::SurvRdsapXref.paginate(page: params[:page])
end
def show
end
def new
@enr_rds_surv_rdsap_xref = Enr::Rds::SurvRdsapXref.new
end
def edit
@enr_rds_surv_rdsap_xref = Enr::Rds::SurvRdsapXref.find(params[:id])
end
def create
@enr_rds_surv_rdsap_xref = Enr::Rds::SurvRdsapXref.new(params[:enr_rds_surv_rdsap_xref])
respond_to do |format|
if @enr_rds_surv_rdsap_xref.save
format.html { redirect_to :enr_rds_surv_rdsap_xrefs, notice: "Survey link was successfully created." }
format.js
format.json { render json: @enr_rds_surv_rdsap_xref, status: :created, location: @enr_rds_surv_rdsap_xref }
else
format.html { render action: "new" }
format.js
format.json { render json: @enr_rds_surv_rdsap_xref.errors, status: :unprocessable_entity }
end
end
end
def update
end
def destroy
end
end
Hier ist meiner Ansicht form wie
<%= form_for(@enr_rds_surv_rdsap_xref, :remote => true) do |f| %>
<% if @enr_rds_surv_rdsap_xref.errors.any? %>
<div id="error_explanation">
<div class="validate">
The form contains <%= pluralize@enr_rds_surv_rdsap_xref.errors.count, "error") %>.
</div>
<ul>
<% @enr_rds_surv_rdsap_xref.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="control-group">
<%= f.label :section %><br />
<%= f.text_field :section %>
</div>
<%= f.submit %>
<% end %>
Wenn ich auf die index-Seite erstellen Sie eine neue Verknüpfung, die index-Seite zeigt Fehler wie
NoMethodError in Enr/rds/surv_rdsap_xrefs#index
undefined method `Fehler' for nil:NilClass
Danke für die Hilfe und bitte schlagen Sie mich, den Fehler zu verbessern. Ich bin neu in ROR. Dank
- Wenn das Formular gerendert wird auf
index
haben, müssen Sie erstellen ein Objekt in derindex
Methode, als auch. - <%= render 'form' %> Ist, dass Sie gemeint ryt?
- Ja, im Grunde, wenn das ist, wo Sie Ihre Formularvorlage. Ich Sprach gerade über das code-snippet oben. Siehe meine neue Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Fehler zeigt an, dass die Darstellung der
index
template den Fehler verursacht, was bedeutet, du bist Rendern des Formulars für die neue Umfrage (das code-snippet oben) in das index template. Das ist in Ordnung, aber wenn du gehst, das zu tun, müssen Sie instanziiert eine neue Umfrage inindex
sowie innew
.Am einfachsten, Sie könnten nur kopieren Sie den code in
new
zuindex
:Halten Sie Ihren code ein wenig Trockner könnten Sie ändern, wo die neue Instanz erstellt wird. Ein Muster sehen Sie oft etwas ähnliches:
Diese Weise brauchen Sie nicht einmal zum schreiben der neuen/index Methoden, wenn Sie nicht haben eine andere Logik.
new
aufgerufen wird, nichtcreate
. Bearbeitet Antworten zu klären. Er sagt in der Frage, dass er die Aktualisierung dernew
Vorlage.Tun Sie auch
@survey
im neuen action in deinem controller? Der Fehler bedeutet, dass, wenn die Ansicht gerendert wird@survey
null ist, also muss es ein problem mit der Einstellung, dass die Instanz-variable.Erhalten Sie den Fehler, wenn Sie gehen, um die 'neue' Sicht, oder wenn Sie versuchen, das Formular zu senden (erstellen)?
Dnr::Pss::Surveyref.new(params[:dnr_pss_survey_ref])
verursacht es zu scheitern. Denn wenn die view gerendert wird @Umfrage scheintnil
. Können Sie nach dem vollständigen log-Bericht von der Anfrage? Vielleicht erzählen Sie uns mehr.NoMethodError in Enr/rds/surv_rdsap_xrefs#index
, das scheint darauf hinzudeuten, dass das problem in der index-Ansicht. Ist es möglich, poste den vollständigen log? Oder ist es vertrauliche Informationen enthalten? Dies ist der einzige mögliche problem, das ich gerade jetzt sehen kannst.Diese Zeile von dem code ist das problem. Es fehlt eine "(" zwischen den Plural und die @enr...
Erklärt: RoR denkt, dass das Objekt: pluralize@enr - ... statt des @ ganz allein, und er hat keine Fehler für diese Art von Objekt.