2009-11-17 2 views
0

J'essaie d'écrire un générateur d'action pour mes applications Rails (probablement la forme la plus basique de métaprogrammation que vous pouvez obtenir.) Ma question est, comment puis-je affecter une variable d'instance qui est disponible dans les vues? ressembler à ceci:..Dans Rails, comment assigner une variable d'instance à partir de define_method et l'exposer depuis les contrôleurs jusqu'aux vues?

ApplicationController < ActionController::Base 

    def generate_custom_action 

    define_method("my_custom_action") do 

     #...some code... 
     instance_variable_set("@variable_name", my_value) 

     # OR 
     @variable_name = 'aoeu' 
    end 
    end 

end 

Mais cela ne semble pas fonctionner d'autres termes, le varable « @variable_name » est « nul » dans les vues Toute idée comment exposer ce à la vue

Répondre

0
?

Vous avez une méthode qui définit certaines vars et les @vars sont disponibles partout dans l'instance de classe

So doing:

def generate_custom_action 
    @variable_name = my_value 
end 

Cela devrait vous suffire pour obtenir la valeur à votre avis.

+0

oups ... J'avais oublié d'ajouter la partie "define_method" à l'exemple ci-dessus ... Je l'ai ajouté maintenant. Je vois ce que vous dites, et il semble que ça devrait marcher ... peut-être que j'étais juste en train de réfléchir. Je vais l'essayer et vous le faire savoir. – btelles

Questions connexes