Hi,

Reviving an old topic about the need of a before_render filter (topic found 
through Google, my apologies if there is a more recent thread)

Here is a use case: 
- A controller's parent class is preparing a set of JavaScript variables to 
be passed to the view
- The view template is inserting those JavaScript variables in the HTML code
- The JavaScript variables need elements loaded/set by the controller

As the controller action takes place after the action filters and before 
the rendering, the only actual solution is to patch `render`.

Code example: 
class ApplicationController

  def render(*args)
    unless @we_already_prepared_js_vars
      @we_already_prepared_js_vars = true # This is to avoid loading those 
variable for each call of render
      @_js_vars = prepare_js_vars
    end

    super
  end
end

class UserController < ApplicationController
  before_filter :load_user

  def prepare_js_vars
    {record_created_at: @user.created_at}
  end

  def load_user
    @user = User.find params[:id]
  end
end

Would be more elegant to use a before_render filter in the 
ApplicationController

Regards



On Friday, September 7, 2012 at 8:58:17 PM UTC+2, Carlos Antonio da Silva 
wrote:
>
> Please show any real use case where this will be useful, to make things 
> more clear. Otherwise it's just hard to figure it out examples where it's 
> useful or not. Thanks.
>
> On Wed, Sep 5, 2012 at 3:53 PM, Alexander Kurakin <kura...@mail.ru 
> <javascript:>> wrote:
>
>> Will not be useful functionality similar 
>> https://github.com/shell/rails3_before_render ? Something like 
>> ActionController filters but not before action. Filters before render. See 
>> also http://www.perfectline.ee/blog/ruby-on-rails-before-render-filter, 
>> http://penkin.co.uk/rails3_before_render-plugin/. And don't you know gem 
>> for this? Thanks.
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Ruby on Rails: Core" group.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msg/rubyonrails-core/-/VVF2HksqidUJ.
>> To post to this group, send email to rubyonra...@googlegroups.com 
>> <javascript:>.
>> To unsubscribe from this group, send email to 
>> rubyonrails-co...@googlegroups.com <javascript:>.
>> For more options, visit this group at 
>> http://groups.google.com/group/rubyonrails-core?hl=en.
>>
>
>
>
> -- 
> At.
> Carlos Antonio
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at http://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to