Rails mixing templating languages - ruby-on-rails

I'm working with a large project where the templates are written in erb. We're getting more and more into client side rendering of parts of the project and we have lots of exact duplicates in mustache of our erb templates.
I'd like to change the erb templates that are replicated in mustache to mustache and print the js templates out from those templates.
I haven't been able to figure out how to mix templating languages in rails though, is this possible? I'd rather not rewrite all the erb templates in mustache.
Thanks!

Maybe Isotope could be useful for you? I never tried it though.

I fear you'd have no direct solution...
An alternative:
You could reuse your good old html created by ruby if you insert in handlebars templates. But it's another js library...
http://www.handlebarsjs.com/

Related

Rails 3.2+ best practice for using Haml to generate Javascript templates (JST)

I asked a specific question about problems I'm having with a specific gem intended to do this in a separate thread ( https://stackoverflow.com/q/18577033/1206117?sem=2 )
But I feel I may be on the "wrong boat" somehow because all of the questions I find about Rails/Haml/JST-templates are at least 2 years old, or go unanswered.
I'm writing an app with a lot of client-side JS and so want to use templates to render views (I'm using Backbone). I want to use Haml to write the templates.
I'm not looking for a debate about which gem/method is better, I'm looking for A WAY that works and has current support and active use. At present I cannot write my JS templates in Haml, and it's a bummer. I'm avoiding CoffeeScript at present since I'm still rather new to Javascript.
I've submitted an issue to the haml git repo.
https://github.com/haml/haml/issues/716
Looks like https://github.com/netzpirat/haml_coffee_assets gives you what you want. (window.JST templates, written in HAML, with inline coffescript support)

Is it possible to share HAML templates between Coffeescript (Backbone.js) and Rails 3.2?

Is this possible? I know people use mustache to share templates, but can you use HAML? I would prefer pre compilation.
A quick google search turns up this lib for client-side rendering of HAML . So it would appear that yes, you could share templates between the client-side and server-side of your app.
If you are processing your JS templates server-side first, then the asset pipeline will take care of this with the correct file extension. You wont be able to use the rendered haml template on the client-side though as it will be missing its tags..

Sharing templates beetween JS and Rails using Haml + Mustache

I am trying to make common templates that used both by Rails and the client side, ie in coffescript.
I use hogan_assets and haml_assets to export templates to JS. However I can't find a way to use HAML and Mustache to render server-side views.
Partial solution is described here, but it doesn't work with view helpers, ie, "render partial" doesn't work.
For some unknown reason chaining of handlers, such as .mustache.haml, doesn't work, and I can't find neither good info on Rails template handler nor an example on how to build "chainable" handler.
I've been experimenting with something like smt_rails lately, but I have yet to find a silver bullet.

How to use slim templates with backbone?

How to use slim templates with backbone?
I use in my ruby-on-rails application backbone-on-rails gem that uses eco templates. But in my project I user slim templates engine and of course I want to use just one template type. But how I can switch to slim in backbone?
Gem backbone-rails from codebrew offers erb and haml, so I think I can use slim too. But how?
Fat-free client-side templates with Slim and CoffeeScript: https://github.com/jfirebaugh/skim
I think you're confusing the difference between client-side templating and server-side templating. Slim, HAML end ERB are Ruby server-side templating libraries.
Eco is a node.js server-side templating library. Templates can be compiled into client-side templates with Eco, but it is dependent on node.js to compile the templates on the server.
It's important to understand that when you create a server-side template, the rendered result generally ends up in your browser as HTML, the template itself never ends up in the browser. With client-side templating, the template itself exists on the browser and the template is rendered via JavaScript (in this case, backbone.js) to produce the HTML on page.

Which extension should I use for view templates in Rails?

As far as I know, .rhtml is deprecated in Rails 2. In some guides there is only .erb, but both RubyMine and NetBeans IDE generate .html.erb and I've also seen it many people using.
I've tested both and they seem to work fine without any errors or warnings, but which one is correct? .erb or .html.erb
file_name.format.extension is the accepted convention now, where format is html, xml, json, anything really and extension is erb if you're using erb, haml if you're using haml and so on.
Typically you want to have the format in the file name.

Resources