2011-12-31 11 views
8

Sto cercando di contribuire ad un progetto open source e ho bisogno di un controller per gestire un paio di forme che devono essere presentate in.Come includere un controller con una gemma di Ruby on Rails?

ho creato questi controller all'interno di una directory all'interno della gemma chiamata app/controllers/gemname/my_controller.rb.

Tuttavia, quando provo ad accedere al controller, sembra non essere caricato (ricevo un errore di nome proprio come se scrivessi qualcosa come NonExistentController).

Come caricare il controller con la gemma?

Grazie!

+1

Il tuo 'MyController' è definito all'interno del modulo' Gemname'? Se non è un binario, si aspetterà che venga inserito in 'app/controller/my_controller.rb'. –

+0

Leggere questa guida http://guides.rubyonrails.org/plugins.html – taro

+0

KL-7, come posso definire MyController all'interno del modulo Gemname? taro, grazie per le informazioni. L'ho fatto, che non contiene le informazioni che sto cercando però. –

risposta

10

Supponiamo che il tuo gioiello si chiami MyGem e che tu abbia un controller chiamato SuperController che desideri utilizzare nell'app. Il controller dovrebbe essere definito come:

module MyGem 
    class SuperController < ApplicationController 
    def whatever 
     ... 
    end 
    end 
end 

e nella directory gemma si dovrebbe vivere a app/controllers/my_gem/super_controller.rb (non nella cartella lib). Guarda lo source for Devise mentre fanno la stessa cosa.

[Modifica] Si può imparare qualcosa da A Guide To Starting Your Own Rails Engine Gem per quanto riguarda il progetto corrente.

+0

Grazie mille !! –

+0

Grazie mille! Adoro il 'link di guida 'che hai menzionato. –

+0

Ero alle prese con tutto questo ieri. Penso che oggi sarà molto più facile. Grazie! – Rimian

0

La guida nella risposta di Brandon è molto utile ma si applica solo ai binari 3.0. Dalla 3.1 puoi creare un plugin. Come questo: rails plugin new my_engine --mountable

Vai a questa guida utile:
http://namick.tumblr.com/post/17663752365/how-to-create-a-gemified-plugin-with-rails-3-2-rspec
(> Rails 3.0)

Rails guida ufficiale (fronte):
http://edgeguides.rubyonrails.org/engines.html
http://edgeguides.rubyonrails.org/plugins.html

Vecchio enginex:
https://github.com/josevalim/enginex
(solo 3,0)

Problemi correlati