Ich habe ein Formular, das ich oben auf jeder Seite erscheinen möchte, also habe ich es in die Datei /app/views/layouts/application.html.erb aufgenommen und Ich erhalte den Fehler undefined method
model_name 'für NilClass: Class` beim Versuch, die Seite zu laden.Rails undefinierte Methode `model_name 'für NilClass: Klasse
Hier ist die Form Schnipsel in application.html.erb
<%= form_for @user do |f| %>
<h3>Add new contact</h3>
<%= f.text_field :first_name %><br />
<%= f.text_field :last_name %>
<%= f.text_field :email %>
<hr />
<%= f.submit "Add Contact" %>
<% end %>
Hier ist meine /app/controllers/user_controller.rb
class UserController < ApplicationController
def index
end
def new
@user = User.new
end
end
Ich denke, dass ich diesen Fehler bin schlagen, weil da das formular in der application.html.erb-datei ist, muss ich irgendwie den pfad angeben, aber dann bin ich wieder sehr neu bei rails.
Lassen Sie mich wissen, wenn Sie etwas anderes gebucht haben.
EDIT Ola Vorschlag folgend, in meiner app/views/layout/application.html.erb Datei habe ich so etwas wie diese:
<div>
<%= yield :add_user %>
</div>
und in meinem app/views/users/neu. html.erb Datei ich habe diese
<% content_for :add_user do %>
<%= form_for @user do |f| %>
<h3>Add new contact</h3>
First Name<br />
<%= f.text_field :first_name %><br />
Last Name<br />
<%= f.text_field :last_name %><br />
Email<br />
<%= f.text_field :email %>
<hr />
<%= f.submit "Add Contact" %>
<% end %>
<% end %>
die Form nicht wiedergegeben wird, weil meine url http://localhost:3000/admin/index
ist und es so suchen die add_user
content_for in app/views/admin/index.html.erb
nehme ich an "wenn die Seite zu laden versuchen," Sie bedeuten '/ Benutzer' –
Tut mir leid, ich lade diese Seite 'http: // localhost: 3000/admin/index' – Catfish
Ja, ich dachte mir so viel, in dem obigen Beispiel'/users/new' sollte funktionieren (irgendwie), obwohl du ' Ich habe deine Ansichtsstruktur falsch verstanden - siehe meine Antwort unten. –