2016-05-25 13 views
0

ich ein Formular erstellt haben useing form_for -Routing Ausgabe in Rails 4

= form_for @category, url: url_for(:controller => 'admin/category',:action => new_record ? "create" : "update"), name: 'udfFieldForm', id: 'udfFieldForm',:method =>'POST', remote: true do |f| 

Controller zu sehen ist wie-

class Admin::CategoryController < ApplicationController 
    def create 
    end 
    def update 
    end 
end 

Route definiert als -

namespace :admin do 
    get 'category/:action' => 'category#index', :as => :category 
    resource :categories 
end 

Wenn ich einreichen Bilden Sie es durch einen Fehler wie -

AbstractController :: ActionNotFound (Die Aktion 'Kategorie' konnte für AdminController nicht gefunden werden):

Hier Kategorie ist ein Controller unter Admin-Verzeichnis, aber es sucht nach Kategorie Aktion im Admin-Controller. Hier möchte ich Kategorie Controler nennen.

Bitte helfen Sie mir, wo ist das Problem?

+0

es durch Fehler - Keine Route treffer [GET] "/ Kategorie" –

+0

http://stackoverflow.com/questions/3853531/rails-routes -namespaces-and-form-for –

Antwort

0

Need Routen zu aktualisieren, Gleichwie mit in Admin namesapce

post 'category/:action'=> 'category', action: :create 
patch 'category/:action'=> 'category', action: :update 
0

Die Anwendung erwartet einen Controller mit dem Namen AdminController mit einer Methode namens category, aber es kann nicht gefunden werden. Das ist, was die Fehlermeldung sagt und dies, wie erstellt man den Link ...url: url_for(:controller => 'admin/category'...

Ich denke, dass ist falsch, da Sie offensichtlich keine category Methode/Aktion in Ihrem AdminController haben.

+0

kategorie ist keine aktion es ist ein controller unter admin verzeichnis wie admin/kategorie und aktion im category controller sind create und update –

+0

Nun, aber das ist dein fehler. Das musst du jetzt korrigieren. Die App sucht nach 'category' in' AdminController', aber Sie möchten, dass es ein * CategoryController * unter Admin-Namespace ist. Korrigieren Sie Ihren Formularlink entsprechend. – Elyasin