forked from vhochstein/render_component
-
Notifications
You must be signed in to change notification settings - Fork 0
Rails 3 Version of render_component
License
nodeta/render_component
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Components allow you to call other actions for their rendered response while executing another action. You can either delegate the entire response rendering or you can mix a partial response in with your other content. class WeblogController < ActionController::Base # Performs a method and then lets hello_world output its render def delegate_action do_other_stuff_before_hello_world render_component :controller => "greeter", :action => "hello_world", :params => { :person => "david" } end end class GreeterController < ActionController::Base def hello_world render :text => "#{params[:person]} says, Hello World!" end end The same can be done in a view to do a partial rendering: Let's see a greeting: <%= render_component :controller => "greeter", :action => "hello_world" %> It is also possible to specify the controller as a class constant, bypassing the inflector code to compute the controller class at runtime: <%= render_component :controller => GreeterController, :action => "hello_world" %> == When to use components Components should be used with care. They're significantly slower than simply splitting reusable parts into partials and conceptually more complicated. Don't use components as a way of separating concerns inside a single application. Instead, reserve components to those rare cases where you truly have reusable view and controller elements that can be employed across many applications at once. So to repeat: Components are a special-purpose approach that can often be replaced with better use of partials and filters. Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license
About
Rails 3 Version of render_component
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Ruby 100.0%