Screencast: Daten an JavaScript übergeben

Fast jeder hatte bereits die Anforderung Daten zwischen einer Rails-Applikation im Backend mit Java-Script im Frontend auszutauschen. Sei es auch nur um bestimmte Teile der Seite mit Java-Script zu markieren (z.B. Highlighting von Navigation oder Suchbegriffen). Es gibt verschiedenste Ansätze und alle bringen ihre eigenen Vor- und Nachteile mit. In diesem Screencast zeigt Ryan Drei verschiedene Ansätze wie es auch implementiert werden kann.

 

Downloads in verschiedenen Formaten:

mp4
m4v
webm
ogg

 

Resourcen:

products/index.html.erb

<%= javascript_tag do %>
  window.productsURL = "<%=j products_url %>";
  window.products = <%=raw Product.limit(10).to_json %>;
<% end %>

app/assets/javascripts/products.js.coffee

jQuery ->
  alert productsURL

products/index.html.erb

<%= content_tag "div", id: "products", data: {products: Product.limit(10)} do %>
  Loading products...
<% end %>

app/assets/javascripts/products.js.coffee

jQuery ->
  alert $('#products').data('products')

Gemfile

gem 'gon'

layouts/application.html.erb

<%= include_gon %>

products_controller.rb

def index
  gon.products = Product.limit(10)
  # or
  gon.rabl "app/views/products/index.json.rabl", as: "products"
end

products/index.json.rabl

collection Product.limit(10)

attributes :id, :name, :price

app/assets/javascripts/products.js.coffee

alert gon.products if gon

Eingestellt am 18.02.2012 um 13:43

Kategorie: News

Be Sociable, Share!

Kommentare für diesen Artikel wurden geschlossen.

Suchen auf rubyonrails.de

Aktuelle Rails Version + Abhängigkeiten:

Gem rails-3.0.0
actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)

Rails auf Rubyforge
Rails auf Github