Estoy tratando de usar skip_before_filter solo si la aplicación está en modo de producción. (No quiero que mis instancias de desarrollo sean públicas, y quiero que la aplicación detecte automáticamente en qué tipo de instancia está y muestre una pantalla de inicio de sesión cuando no esté en modo de producción). Por lo tanto, mi controlador de aplicación tiene la línea siguiente:skip_before_filter ignora condicionales
before_filter :authenticate_user!, :except => "sign_in" #redirects to log-in
y el controlador de páginas que muestran tiene esta línea:
skip_before_filter :authenticate_user!, :only => :show, :if => :in_production
#public pages are public, but only when in production.
Y in_production es simplemente:
def in_production
ENV['RAILS_ENV']=='production'
end
Soy consciente de que hay puede haber otras vías aquí, pero tengo curiosidad sobre por qué skip_before_filter parece ignorar el condicional y siempre omita el before_filter. ¿Se me escapa algo?
Usando Rails 2.3.9 y la gema de autenticación Devise. – Smudge