Adding AngularJS in rails application is very easy. Just add angular-rails-templates in gem file as shown below:
gem 'bower-rails'
gem 'angular-rails-templates'
But some times it gives error and does not run as expected. This issue is might be because of sprocket version. We have to mention sprocket version in gem file
gem 'sprockets', '2.12.3'
After adding sprocket in the gem file, update bundle
$ bundle update
$ rails g bower_rails:initialize json
Now open bower.json file and add angular in the library dependencies
{
"lib": {
"name": "bower-rails generated lib assets",
"dependencies": {
"angular": "latest",
"angular-route": "latest"
}
},
"vendor": {
"name": "bower-rails generated vendor assets",
"dependencies": {
}
}
}
One more important thing REMOVE turbolinks from gem file and from application.js file, and add angular in application.js file
//= require angular
//= require angular-route
//= require angular-rails-templates
For the reference below is my gem file
source 'https://rubygems.org'
gem 'sprockets', '2.12.3'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.4'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'angular-rails-templates'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
gem 'bower-rails'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end