2016-05-19 8 views
-1

Ich verwende Rails 4.2.3. Ich habe Probleme, mein Formular zum Rendern zu bekommen. Ich bekomme den Fehler "undefined Methode` myobjects_path 'für # < #: 0x007f8362cc01e0> "in der Zeile" <% = form_for @myobject tun | f |%> ", wenn ich meine" http://localhost:3000/users "Seite besuchen. Der folgende Code ist von meiner „app/views/users/_add.html.erb“ Datei ..."Undefinierte Methode` myobjects_path '"beim Versuch, meine Rails-Form zu rendern

<%= form_for @myobject do |f| %> 
    <% if @myobject.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@myobject.errors.count, "error") %> prohibited this hack from being saved:</h2> 

     <ul> 

hier ist die Methode in meiner „app/controllers/users_controller.rb“, aus denen diese Seite verwiesen wird ...

class UsersController < ApplicationController 
    def index 
    @myobject = Myobject.new 
    end 
end 

Was muss ich tun, damit mein Formular gerendert wird?

+0

tun Sie in Ihrer config/routes.rb 'Ressourcen: useres' – MZaragoza

Antwort

0

Dies tritt auf, wenn das Objekt in der Form (@myobject in diesem Fall) ein new_record ist und keine ID hat. Das Formular wird die Pfadmethode aufrufen, normalerweise um zu "/ myobjects" zu gehen, um als Formularquelle verwendet zu werden. Wenn es sich nicht um einen neuen Datensatz handelt, wird der Detailpfad (/ myobjects /: id) angezeigt.

In diesem Fall gibt es keine Methode myobjects_path, weil Sie die Methode wahrscheinlich noch nirgendwo erstellt haben. Es ist einfach in Routen zu erstellen. So stellen Sie sicher, dass Sie ein resources :myobjects haben und es schließt die Aktion erstellen

0

In Controller add-Methode

def new 
    @myobject = Myobject.new 
end 

def create 

end 
Verwandte Themen