#ruby-on-rails #ruby #morris.js
#ruby-на-рельсах #рубиновый #morris.js
Вопрос:
мне нужны некоторые графические представления некоторых графиков для моего приложения. Для этого я нашел morris.js (https://github.com/beanieboi/morrisjs-rails ) соответствовал бы моим потребностям. Установка должна быть очень простой, всего 3 вещи должны быть сделаны, чтобы заставить это работать — в теории.
Gemfile: добавьте драгоценные камни
gem 'morrisjs-rails'
gem 'raphael-rails'
запустить пакет:
...@...-VM:~/.../foobar$ bundle
Using rake 10.3.2
Using i18n 0.6.9
Using json 1.8.1
Using minitest 5.3.4
Using thread_safe 0.3.4
Using tzinfo 1.2.0
Using activesupport 4.1.1
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.1
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.1
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.1.1
Using activemodel 4.1.1
Using arel 5.0.1.20140414130214
Using activerecord 4.1.1
Using bcrypt 3.1.7
Using bcrypt-ruby 3.1.5
Using sass 3.2.19
Using bootstrap-sass 3.1.1.1
Using will_paginate 3.0.5
Using bootstrap-will_paginate 0.0.10
Using cancan 1.6.10
Using mini_portile 0.6.0
Using nokogiri 1.6.2.1
Using xpath 2.0.0
Using capybara 2.2.1
Using ffi 1.9.3
Using childprocess 0.5.3
Using coffee-script-source 1.7.0
Using execjs 2.1.0
Using coffee-script 2.2.0
Using thor 0.19.1
Using railties 4.1.1
Using coffee-rails 4.0.1
Using diff-lcs 1.2.5
Using multi_json 1.10.1
Using gherkin 2.12.2
Using multi_test 0.1.1
Using cucumber 1.3.15
Using bundler 1.6.2
Using hike 1.2.3
Using tilt 1.4.1
Using sprockets 2.11.0
Using sprockets-rails 2.1.3
Using rails 4.1.1
Using cucumber-rails 1.4.0
Using database_cleaner 1.3.0 from git://github.com/bmabey/database_cleaner.git (at master)
Using orm_adapter 0.5.0
Using warden 1.2.3
Using devise 3.2.4
Using unf_ext 0.0.6
Using unf 0.1.4
Using domain_name 0.5.18
Using factory_girl 4.4.0
Using factory_girl_rails 4.4.1
Using faker 1.3.0
Using gedcom 0.9.4
Using http-cookie 1.0.2
Using jbuilder 2.0.7
Using jquery-rails 3.1.0
Using net-http-digest_auth 1.4
Using net-http-persistent 2.9.4
Using ntlm-http 0.1.1
Using webrobots 0.1.1
Using mechanize 2.7.2
Using morrisjs-rails 0.5.0
Using pg 0.17.1
Using rails_serve_static_assets 0.0.2
Using rails_stdout_logging 0.0.3
Using rails_12factor 0.0.2
Using raphael-rails 2.1.2
Using rspec-core 2.14.8
Using rspec-expectations 2.14.5
Using rspec-mocks 2.14.6
Using rspec-rails 2.14.2
Using rubyzip 1.1.3
Using sass-rails 4.0.3
Using websocket 1.0.7
Using selenium-webdriver 2.42.0
Using sqlite3 1.3.9
Using turbolinks 2.2.2
Using uglifier 2.5.0
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
Драгоценные камни установлены. Теперь мне нужно добавить
//= require raphael
//= require morris
для applictaion.js и
*= require morris
для application.css.
Если я попытаюсь получить index.html из моего приложения я получаю следующую ошибку:
Sprockets::FileNotFound in StaticPages#home
couldn't find file 'morris'
(in /.../.../.../.../app/assets/stylesheets/application.css:13)
Это мой gemfile:
source 'https://rubygems.org'
gem 'rails'
gem 'bootstrap-sass'
gem 'sprockets'
gem 'bcrypt-ruby'
gem 'faker'
gem 'will_paginate'
gem 'bootstrap-will_paginate'
gem 'gedcom'
gem 'mechanize'
gem 'cancan'
gem 'devise'
gem 'morrisjs-rails'
gem 'raphael-rails'
group :development, :test do
gem 'sqlite3'
gem 'rspec-rails'
# The following optional lines are part of the advanced setup.
# gem 'guard-rspec', '2.5.0'
# gem 'spork-rails', '4.0.0'
# gem 'guard-spork', '1.5.0'
# gem 'childprocess', '0.3.6'
end
group :test do
gem 'selenium-webdriver'
gem 'capybara'
gem 'factory_girl_rails'
gem 'cucumber-rails', '1.4.0', :require => false
gem 'database_cleaner', github: 'bmabey/database_cleaner'
# Uncomment this line on OS X.
# gem 'growl', '1.0.3'
# Uncomment these lines on Linux.
# gem 'libnotify', '0.8.0'
# Uncomment these lines on Windows.
# gem 'rb-notifu', '0.0.4'
# gem 'win32console', '1.3.2'
# gem 'wdm', '0.1.0'
end
gem 'sass-rails'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder'
group :production do
gem 'pg'
gem 'rails_12factor'
end
Application.js
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap
//= require_tree .
//= require raphael
//= require morris
Приложение.css:
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*
*= require_self
*= require_tree .
*= require morris
*/
Я попытался установить драгоценные камни вручную с тем же эффектом.
Комментарии:
1. Вы перезапускали свое приложение после добавления драгоценных камней?
2. Вы имеете в виду перезапуск сервера? Несколько раз.
3. Вместо использования этого драгоценного камня добавьте необходимый файл js и css вручную. Больше информации о morrisjs.github.io/morris.js
Ответ №1:
Я думаю, вам нужно будет реорганизовать application.js amp; application.css включает в себя немного по-другому, как показано ниже:
application.js (переместите элементы Рафаэля и Морриса перед require_tree)
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
//= require raphael
//= require morris
//= require_tree .
application.css (переместите включение Морриса перед require_tree)
*= require morris
*= require_tree .
*= require_self
Это должно решить проблему.
Пожалуйста, обратите внимание: это было протестировано на rails 4.2, в котором используются turbolinks.