Make Rails' flash messages available to Ember.js applications. Inspired by a Blog post by Stefan Siebel.
Add the ember-rails-flash gem to your Gemfile (not released as .gem file yet).
gem 'ember-rails-flash'
Include EmberRailsFlash::FlashInHeader in (all) the controller(s) dealing with Ember.js. ApplicationController is totally fine.
class ApplicationController < ActionController::Base
# ...
include EmberRailsFlash::FlashInHeader
end
Add the javascripts to your asset pipeline (for example application.js), preferrably after ember itself.
//= require handlebars
//= require ember
//= require ember-rails-flash
Now, you can use the provided view directly in your templates or extend them.
MyApp.Messages = Ember.Rails.FlashListView.extend
fnord: (->
@get('content').fnordify()
).property('content')
itemViewClass: Ember.View.extend(template: "...")
If you use the responders
gem (which you do if you use the inherited_resources
gem), you may want to enable the FlashResponder. If you don't, the expected i_h flash messages will no be set on respond formats other than "html". So for example in config/initializers/flash.rb
:
EmberRailsFlash.enable_flash_responder 'json'
First, install this repo throw bower:
ember install:bower https://github.com/niklas/ember-rails-flash.git
Then, just load the provided js from dist/ in your application's Brocfile.
// to compile the inline template
app.import('bower_components/ember/ember-template-compiler.js');
app.import('bower_components/ember-rails-flash/dist/ember-rails-flash.js');
Tests? What the frak are tests? - Will come .. soon.. ish
I love CoffeeScript as it keeps the bad parts out of my JS.
I really don't know a better way. If you have one, please send me a pull request :)
Still learning, please educate me - SRSLY.
Feel free to open an issue ticket if you find something that could be improved.
This project rocks and uses GPL-3 as license.