12/08/2018, 13:03

Setting up ember.js with rails

Ember.js là một client-side framework với mục tiêu tập trung cho phát triển các ứng dụng single-page application. Đi theo khái niệm Convention Over Configuration, Ember cũng giống như rails giúp cho các lập trình viên tập trung vào vấn đề thật sự đó là trương trình tạo ra: the application. Công ...

Ember.js là một client-side framework với mục tiêu tập trung cho phát triển các ứng dụng single-page application. Đi theo khái niệm Convention Over Configuration, Ember cũng giống như rails giúp cho các lập trình viên tập trung vào vấn đề thật sự đó là trương trình tạo ra: the application. Công cụ được sử dụng nhiều nhất để chạy một Ember ngày nay đó là ember-cli. Ember-cli là một công cụ với những tính năng tuyệt vời cho phát triển ứng dụng với ember.js như asset pipeline và ES6. Nhưng ngay cả khi với những tiện ích mà ember-cli đem lại như vậy, bạn chỉ muốn giữ lại workflow và sử dụng Rails framework để chạy ember.js Bài viết này hôm nay sẽ giới thiệu và hướng dẫn cài đặt và sử dụng Ember trong Ruby on rails application.

Installtion##

Để cài đặt ember trong ứng dụng của bạn, chỉ đơn giản là khai báo thêm vào file Gemfile.

source 'https://rubygems.org'
source 'https://rails-assets.org'

gem 'rails', '4.2.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'ember-rails'
gem 'ember-source', '~> 1.9.0'
gem 'rails-assets-jquery'

sau đó chạy lại bundle installl

Setting up the project##

Bây giờ chúng ta có thể tạo ra Ember app bằng câu lệnh rails generate. Với tùy chọn -n để chỉ ra namespace cho ứng dụng của bạn

$ rails g ember:bootstrap -n MyApp
    insert  app/assets/javascripts/application.js
    create  app/assets/javascripts/models
    create  app/assets/javascripts/models/.gitkeep
    create  app/assets/javascripts/controllers
    create  app/assets/javascripts/controllers/.gitkeep
    create  app/assets/javascripts/views
    create  app/assets/javascripts/views/.gitkeep
    create  app/assets/javascripts/routes
    create  app/assets/javascripts/routes/.gitkeep
    create  app/assets/javascripts/helpers
    create  app/assets/javascripts/helpers/.gitkeep
    create  app/assets/javascripts/components
    create  app/assets/javascripts/components/.gitkeep
    create  app/assets/javascripts/templates
    create  app/assets/javascripts/templates/.gitkeep
    create  app/assets/javascripts/templates/components
    create  app/assets/javascripts/templates/components/.gitkeep
    create  app/assets/javascripts/mixins
    create  app/assets/javascripts/mixins/.gitkeep
    create  app/assets/javascripts/adapters
    create  app/assets/javascripts/adapters/.gitkeep
    create  app/assets/javascripts/codeplane.js
    create  app/assets/javascripts/router.js
    create  app/assets/javascripts/store.js
    create  app/assets/javascripts/adapters/application_adapter.js

Trong file app/assets/javascripts/application.js, xóa đi cái khai báo cho jquery-ujs và turbolinks và khai báo ember app

//= require jquery
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require ./my_app

Chúng ta cũng phải tạo một controller/action để khởi động Ember app EmberController#bootstrap và view trống tương ứng app/views/ember/bootstrap.html.erb

class EmberController < ApplicationController
  def bootstrap
  end
end

Tiếp theo là setup ứng dụng rails routes. Ember có hỗ trợ history.pushState, có nghĩ là mỗi khi bạn truy tới một route, thanh địa chỉ URL sẽ thay đổi thay vì sử dụng cấu trúc #!. Bạn sẽ cần một khai báo route để bắt tất cả các route này bằng cánh khai báo trong config/routes.rb như sau

Rails.application.routes.draw do
  root "ember#bootstrap"
  get "/*path" => "ember#bootstrap"
end

Cuối cùng chúng ta có thể tạo view cho chương trình app/assets/javascripts/templates/index.hbs và xem chúng hoạt động

<h1>Ember</h1>
<p>Fuck yeah! It works!</p>

Cuối cùng chạy ứng dụng bằng rails server và trên http://localhost:3000, bạn sẽ thấy được kết quả trả về tương tự như dưới đây! demo Trên đây là giới thiệu về cài đặt và chạy một ứng dụng Ember.js cùng với rails framework. Trong bài viết tiếp theo sẽ trình bày tiếp về xây dựng một ứng dụng tương tác với Ember.js và Rails, chi tiết hơn về Ember hoạt động như thế nào trên rails và viết test cho Ember app

0