Rails4로 Knockout & Bootstrap & Coffee & SASS & Haml 환경을 구축
11185 단어 hamlRailsCoffeeScriptSassknockoutjs
Knockout.js를 사용하는 이유는 View에서 얇게 사용하기에 적합하기 때문입니다.
개인적으로 여러 번 반복해서 만들 것 같은 환경이므로, 순서를 여기에 남깁니다.
(덧붙여서 CoffeeScript와 SASS는 Rails4에서 표준이므로 특별히 아무것도하지 않습니다.)
또한이 절차에서 만든 Seed는 GitHub에 넣었습니다. 좋으면 사용하십시오.
⇒ htps : // 기주 b. 코 m/h 쿠스/K의 c 이렇게 t. js_i ls_see d
전제
Mac OS X 10.9.5 (Mavericks)
2.1.2
4.1.1
환경 구축 절차
① Rails 프로젝트 작성
$ bundle exec rails new hoge_app --skip-bundle -T
$ bundle exec rails new hoge_app --skip-bundle -T
-T
를 지정. ② Gemfile 편집
rails_angular_app/Gemfile
#gem 'turbolinks'
gem 'knockoutjs-rails'
gem 'bootstrap-sass'
gem 'font-awesome-sass'
gem 'haml-rails'
gem 'erb2haml', group: :development
gem 'better_errors', group: [:development, :test]
gem 'binding_of_caller', group: [:development, :test]
gem 'brakeman', group: :development
gem 'rails_best_practices', group: :development
gem 'pry-rails', group: [:development, :test]
gem 'rspec', group: [:development, :test]
gem 'rspec-rails', group: [:development, :test]
gem 'factory_girl_rails', group: [:development, :test]
gem 'rubocop', group: :development
gem 'rubocop-checkstyle_formatter', group: :development
③ Bundler로 gem 설치
$ cd hoge_app
$ bundle install --path vendor/bundle
설치가 끝나면 일단 여기서 동작 확인. 브라우저로
http://127.0.0.1:3000
에 액세스 해, 친숙한 화면이 표시되면 OK.$ cd hoge_app
$ ./bin/rails s
④ Spring 활성화
$ cd hoge_app
$ bundle exec spring binstub --all
⑤ Haml 관련
기존
.erb
파일을 .haml
파일로 변환.$ cd hoge_app
$ ./bin/rake haml:replace_erbs
⑥ Knockout.js 관련
app/assets/javascripts/application.js
수정.app/assets/javascripts/application.js
//= require knockout ←この行を追記
//= require turbolinks ←この行を削除
`
app/views/layouts/application.html.haml
수정.app/views/layouts/application.html.haml
- = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
- = javascript_include_tag 'application', 'data-turbolinks-track' => true
+ = stylesheet_link_tag 'application', media: 'all'
+ = javascript_include_tag 'application'
turbolinks가 비활성화되었습니다.
⑦ Twitter Bootstrap & Font Awesome 관련
app/assets/stylesheets/application.css.scss
를 새로 작성하고 편집.$ touch app/assets/stylesheets/application.css.scss
app/assets/stylesheets/application.css.scss
@import "bootstrap-sprockets";
@import "bootstrap";
@import "font-awesome-sprockets";
@import "font-awesome";
행의 순서를 바꾸면 움직이지 않으므로 주의!
기존
app/assets/stylesheets/application.css
삭제.$ rm app/assets/stylesheets/application.css
app/assets/javascripts/application.js
수정.app/assets/javascripts/application.js
//= require bootstrap-sprockets ←この行を追記
이상으로 환경 구축은 완료.
덧붙여서 Git 관리에서 제외하는 것은 다음과 같습니다.
.gitigunore
/vendor/bundle
/.idea ← IDE に RubyMine を使っている場合
참고: 동작 확인 방법
① 우선 적당히 Scaffold
$ ./bin/rails g scaffold person name:string age:integer memo:text
$ ./bin/rake db:create(もし作成されていない場合)
$ ./bin/rake db:migrate
② Bootstrap & Font Awesome의 동작 확인
$ ./bin/rails g scaffold person name:string age:integer memo:text
$ ./bin/rake db:create(もし作成されていない場合)
$ ./bin/rake db:migrate
공통 페이지 레이아웃을 수정.
app/views/layouts/application.html.haml
!!!
%html
%head
%title HogeApp
= stylesheet_link_tag 'application', media: 'all'
= javascript_include_tag 'application'
= csrf_meta_tags
%body
%nav.navbar.navbar-default{role: "navigation"}
.container-fluid
.navbar-header
%a.navbar-brand{href: "#"}
%i.fa.fa-home
.container
= yield
표시를 확인.
$ ./bin/rails s
브라우저에서
http://127.0.0.1:3000/people
로 이동합니다.③ Knockout.js의 동작 확인
보기
app/views/people/index.html.haml
〜
#ItemView
%p
ほげほげ:
%input{"data-bind" => "value: hoge, valueUpdate: 'afterkeydown'"}
%p
%span{"data-bind" => "text: hoge"}
:coffee
$ ->
ko.applyBindings new HOGEAPP_PEOPLE.ItemViewModel(), $("#ItemView")[0]
ViewModel
app/assets/javascripts/people.js.coffee
$ ->
HOGEAPP_PEOPLE = window.HOGEAPP_PEOPLE = window.HOGEAPP_PEOPLE ? {}
HOGEAPP_PEOPLE.ItemViewModel = () ->
@hoge = ko.observable()
return
return
다음과 같이 데이터 바인딩이 움직이면 OK.
~이상~
Reference
이 문제에 관하여(Rails4로 Knockout & Bootstrap & Coffee & SASS & Haml 환경을 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hkusu/items/0c68e294521b7e5caf55텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)