I'm trying to add an application enabled/disabled flag in my application.. This is my code. [code=] # application.rb ... before_filter :check_enabled_flag private def check_enabled_flag application_flag = ApplicationFlag.find(:first) if application_flag.application_enabled redirect_to application_disabled_path and return end end[/code] and for some reason i keep getting this error [code=]Render and/or redirect were called multiple times in this action. Please note that you may only call render OR redirect, and at most once per action. Also note that neither redirect nor render terminate execution of the action, so if you want to exit an action after redirecting, you need to do something like "redirect_to(...) and return".[/code] the database is set up correctly and it works when the site is enabled. when its disabled i get the error above. any suggestions as to how to fix this? thanks.
on 2008-12-04 09:58
on 2008-12-04 11:02
On 3 Dec 2008, at 23:08, BarefootSanders wrote: > def check_enabled_flag > application_flag = ApplicationFlag.find(:first) > > if application_flag.application_enabled is this typo ? surely you only redirect when the application is not enabled. What version of rails is your app running ? For rails >= 2.0 then redirecting from a filter halts execution, but in previous versions you had to return false from the filter to achieve that. Fred
on 2008-12-04 14:11
It seems the same filter is being executed for the redirected action too... so u r in infinite loop make sure the filter is skipped for the action you are redirecting to. use this before_filter :check_enabled_flag, :except=>[:disabled] On Thu, Dec 4, 2008 at 1:08 AM, BarefootSanders <email@example.com> wrote: > def check_enabled_flag > most once per action. Also note that neither redirect nor render > end > > > > -- Mahmoud Said Software Developer blog.modsaid.com www.eSpace.com.eg