2014-06-24 1 views
2

Noob possible Avertissement:Nouveau sur RoRRuby On Rails - Utilisation de préoccupations dans les contrôleurs

Je suis en train d'utiliser des préoccupations dans RoR. En ce moment, je viens une préoccupation très simple writen

#./app/controllers/concerns/foo.rb 
module Foo 
    extend ActiveSupport::Concern 

    def somethingfoo 
    puts "Ayyyy! Foo" 
    end 
end 

Quand j'essaie d'utiliser cette préoccupation dans mon contrôleur je reçois une erreur de méthode non définie

#./app/controllers/foo_controller.rb 
class FooController < ApplicationController 

    include Foo 

    def show 
    Foo.somethingfoo # undefined method 'somethingfoo' for Foo:Module 
    render plain: "Ohh no, It doesnt even show me because of the error above me" 
    end 
end 

A ma connaissance somethingfoo devrait être appelé mais il est ne pas. J'ai également essayé de définir somethingfoo dans un bloc included do ... end dans le problème mais cela ne fonctionne pas non plus.


Y at-il quelque chose qui me manque? Les préoccupations ne peuvent-elles pas être utilisées de la sorte avec les contrôleurs?

+0

Pourquoi essayez-vous d'appeler quoi que ce soit sur le 'foo'? http://stackoverflow.com/a/15078070/438992, http://blog.andywaite.com/2012/12/23/exploring-concerns-for-rails-4/, etc. –

Répondre

6

Si vous incluez des modules (étendus par ActiveSupport::Concern ou non), les méthodes de ce module deviennent des méthodes d'instance de la classe/module inclus.

Votre méthode doit donc lire contrôleur

def show 
    somethingfoo 
    render plain: "Yeah, I'm shown!" 
end 
+0

Acceptera la réponse une fois qu'elle le sera laissez-moi, merci beaucoup –

Questions connexes