I'm trying to contribute to an open source project and I need a controller to handle a couple of forms that need to be submitted in.
I created these controllers inside a directory inside the gem called app/controllers/gemname/my_controller.rb
.
However, when I try to access the controller, it seems not to be loaded (I get a name error just as if I typed something like NonExistentController).
How do I load my controller with the gem?
Thanks!
Let's assume your gem is called MyGem
and you have a controller called SuperController
that you want to use in the app. Your controller should be defined as:
module MyGem
class SuperController < ApplicationController
def whatever
...
end
end
end
and in your gem directory it should live at app/controllers/my_gem/super_controller.rb
(not under the lib
folder). Check out the source for Devise as they do the same thing.
[Edit] You may learn something from A Guide To Starting Your Own Rails Engine Gem regarding your current project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With