Wie wird ein Controller in ein Ruby on Rails-Juwel eingebunden?

8

Ich versuche, zu einem Open-Source-Projekt beizutragen, und ich brauche einen Controller, der einige Formulare bearbeitet, die eingereicht werden müssen.

Ich habe diese Controller in einem Verzeichnis innerhalb des Edelsteins namens app/controllers/gemname/my_controller.rb erstellt.

Wenn ich jedoch versuche, auf den Controller zuzugreifen, scheint dieser nicht geladen zu sein (ich bekomme einen Namensfehler, genau so, als ob ich etwas wie NonExistentController eingegeben hätte).

Wie lade ich meinen Controller mit dem Edelstein?

Danke!

    
Yuval Karmi 31.12.2011, 16:17
quelle

2 Antworten

10

Nehmen wir an, Ihr Edelstein heißt MyGem und Sie haben einen Controller namens SuperController , den Sie in der App verwenden möchten. Ihr Controller sollte wie folgt definiert sein:

%Vor%

und in Ihrem Gem-Verzeichnis sollte es unter app/controllers/my_gem/super_controller.rb ( nicht im Ordner lib ) liegen. Sehen Sie sich die Quelle für Devise an, da sie dasselbe tun.

[Bearbeiten] Sie können etwas aus Eine Anleitung zum Starten Ihrer eigenen Rails Engine Gem zu Ihrem aktuellen Projekt.

>     
Michelle Tilley 31.12.2011, 19:23
quelle
0

Der Leitfaden in Brandons Antwort ist sehr hilfreich, gilt aber nur für Schienen 3.0. Seit 3.1 können Sie ein Plugin erstellen. So: rails plugin new my_engine --mountable

Sehen Sie sich diese hilfreiche Anleitung an:
Ссылка
(& gt; Rails 3.0)

Offizieller Reiseführer (Kante):
Ссылка
Ссылка

Old enginex:
Ссылка
(Nur 3.0)

    
Rimian 25.04.2013 23:38
quelle