A sample application(under development) to showcase use of ember.js with ruby on rails.
Thanks to the developers of following gems:
- ember-rails
- ember-rest-rails
- [ember-layout] (https://github.com/ghempton/ember-layout)
- ember-routemanager
- user login feature
- articles and sections - A section belongs to an article, and an article has many sections
- A loggedin user can edit/delete/add articles
- A public user can only view all the articles
- The basic framework is ready with emberjs routes and layout managers.
- Login and Registration feature has been implemented.
- Articles list created for public users and linked with database.
Note: Use console to add new articles.
- Articles and sections
Railse.routeManager = Em.RouteManager.create({
initialState: 'loggedout.home',
rootView: Railse.layout,
loggedout: Em.StateManager.create({
route: 'logged-out',
enter: function (stateManager, transition) {
this._super(stateManager, transition);
var signInView = Railse.SignInView.create();
var mainNavView = Railse.MainNavView.create();
Railse.layout.set('sidebar', signInView);
Railse.layout.set('mainnav', mainNavView);
},
home: Em.LayoutState.create({
route: 'home',
viewClass: Railse.HomePageView.extend({ text: 'you are currently loggedout.' }),
enter: function (stateManager, transition) {
this._super(stateManager, transition);
}
}),
articles: Em.LayoutState.create({
route: 'articles',
viewClass: Railse.ArticlesView.extend(),
enter: function (stateManager, transition) {
this._super(stateManager, transition);
}
})
}),
loggedin: Em.LayoutState.create({
route: 'logged-in',
viewClass: Railse.UserProfileView.extend(),
enter: function (stateManager, transition) {
this._super(stateManager, transition);
var signInView = Railse.SignInView.create({ loggedin: true });
var mainNavView = Railse.MainNavView.create();
mainNavView.initialMenu.push({name: 'Logout', action: 'logout', controllername: 'Railse.usersController'});
Railse.layout.set('sidebar', signInView);
Railse.layout.set('mainnav', mainNavView);
}
})
});
I have tried to follow the standards as much as possible. As I am not yet familiar with any best practices in using emberjs, kindly let me know if I can improve any feature.