2010-02-24 9 views
5

En mi modelo me gustaría comprobar si la aplicación se está ejecutando dentro de IRB consol o como un sitio web?Rieles Compruebe si la consola IRB o la página web

class MyModel < ActiveRecord::Base 
    def xmethod 
    if !isIRBconsol 
     self.user_id = UserSession.find.user.id 
    end 
    end 
end 
+3

¿Puedes decir por qué quieres esto? El problema más grande podría tener una mejor solución. –

+0

Quiero establecer el campo user_id de un modelo before_save. Debido a que UserSession no existe en IRB, intento algo así. Mejor solución? – xpepermint

Respuesta

3

Esto es un poco de un truco, pero debería funcionar:

class MyModel < ActiveRecord::Base 
    def am_i_in_irb? 
    self.private_methods.include? 'irb_binding' 
    end 
end 

Pero como dijo Kathy Van Stone anteriormente, este es probablemente algo que tiene una mejor solución.

3

¿Por qué no solo if defined?(IRB)?

+2

Esto no parece funcionar siempre según su alcance. Por ahora, me he decidido por 'Rails.const_defined? ('Console')'. – toupeira

0
unless self.private_methods.include? 'irb_binding' 
    #put your rufus scheduling here 
end 
Cuestiones relacionadas