Lazy-load Rails partials via CableReady
with a helper in your template
<%= futurize @posts %>
custom <futurism-element>
s (in the form of a <div>
or a <tr is="futurism-table-row">
are rendered. Those custom elements have an IntersectionObserver
attached that will send a signed global id to an ActionCable channel (FuturismChannel
) which will then replace the placeholders with the actual resource partial.
With that method, you could lazy load every class that has to_partial_path defined (ActiveModel has by default).
You can pass the placeholder as a block:
<%= futurize @posts, extends: :tr do %>
<td class="placeholder"></td>
<% end %>
Remember that you can override the partial path in you models, like so:
class Post < ApplicationRecord
def to_partial_path
"home/post"
end
end
That way you get maximal flexibility when just specifying a single resource.
Add this line to your application's Gemfile:
gem 'futurism'
And then execute:
$ bundle
To copy over the javascript files to your application, run
$ bin/rails futurism:install
The gem is available as open source under the terms of the MIT License.
Thanks goes to these wonderful people (emoji key):
Julian Rubisch 💻 |
darkrubyist 💻 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!