Ich habe den Controller-Code durch Vererbung DRY'd.Rails Controller - Erben einer benutzerdefinierten Aktion
class MastersController < ApplicationController
def index
...
...
end
...
...
end
class ItemsController < MastersController
end
Jetzt habe ich eine benutzerdefinierte Aktion zum MastersController hinzugefügt
class MastersController < ApplicationController
def index
...
...
end
...
...
def clone
...
...
end
end
ich hinzugefügt haben, die Routen für Artikel
resources :items do
get :clone
end
Jetzt, wenn ich versuche myapp.dev/items/ zugreifen 1/Klon, ich bekomme den Fehler
AbstractController::ActionNotFound at /items/1/clone
The action 'clone' could not be found for ItemsController
Wenn ich die Aktion 'Klon' in ItemsController hinzufüge, verschwindet der Fehler.
class ItemsController < MastersController
def clone
...
...
end
end
Wie abstrahiere ich eine benutzerdefinierte Aktion in Rails Controller?
Eine weitere Frage auf um das gleiche Thema http://stackoverflow.com/questions/22604996/rails-controller-inheritance-vs -concerns-and-mixins –
Könnte das eine Antwort sein? http://stackoverflow.com/questions/3998286/inheriting-and-routing-a-custom-action-from-applicationcontroller-in-rails (Tadmans Antwort) –
ist "Klon" unter jeder privaten Methode? Versuchen Sie, das Wort "public" eine Zeile über "def clone" hinzuzufügen – gabrielhilal