Thứ sáu, 19/07/2013 | 00:00 GMT+7

Cách cài đặt và bắt đầu với Sinatra trên hệ thống hoặc VPS của bạn

Sinatra là một web framework đơn giản và nhẹ được viết bằng Ruby. Bài viết này giả sử bạn biết Ruby cơ bản và đã cài đặt Ruby và RubyGems trên hệ thống hoặc server cloud của bạn. Nên sử dụng Trình quản lý version Ruby (RVM).

Nó không phải là Rails. Nó là gì?

Sinatra tương tự như Ruby on Rails ở chỗ cả hai đều là web framework. Nó khá khác với Rails ở chỗ nhẹ hơn nhiều (ít chi phí hơn) và bạn có quyền kiểm soát chi tiết hơn đối với ứng dụng web của bạn . Ngoài ra, không có chức năng database tích hợp hoặc kết xuất trang - tất cả đều được thực hiện thủ công.

Vậy tại sao lại là Sinatra?

Nó nhanh chóng. Nó đơn giản. Nó hiệu quả. Tuy nhiên, kéo theo đó là nhiều công việc hơn và nhiều chỗ cho sai sót hơn.

Sinatra được sử dụng tốt nhất cho các ứng dụng web nhỏ hơn hoặc những ứng dụng không cần phình to, như những ứng dụng trong danh sách trên trang web của họ . Có rất nhiều ứng dụng cho một mục đích, chẳng hạn như một ứng dụng chỉ lật ngược văn bản . Bạn thậm chí có thể viết một giao diện user Jekyll đơn giản với Sinatra.

Cài đặt Ruby và RubyGems

Cách tốt nhất để cài đặt Ruby và RubyGems là sử dụng Trình quản lý version Ruby hoặc RVM. RVM cho phép bạn cài đặt nhiều Ruby, với các bộ đá quý (gemsets) của riêng chúng, và thậm chí các bộ đá quý khác nhau trên mỗi Ruby. Để chạy RVM Ruby 2.0.0 mới nhất:

\curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0

Bạn có thể đặt bất kỳ số version nào cho version Ruby. Điều này cài đặt RVM cho một user đang chạy lệnh. Để cài đặt trên toàn hệ thống, hãy thêm sudo trước khi bash :

\curl -L https://get.rvm.io | sudo bash -s stable --ruby=2.0.0

Nếu Ruby binary có sẵn cho hệ thống hoặc server cloud của bạn (rất có thể), nó sẽ được download và cài đặt. Nếu không, nó sẽ xây dựng Ruby từ nguồn. Điều này có thể mất một thời gian.

Khi kết thúc quá trình cài đặt, hãy đăng xuất và đăng nhập lại. Sau đó, nó sẽ yêu cầu bạn chạy lệnh

source ~/.rvm/scripts/rvm
- điều này tải RVM vào terminal hiện tại của bạn. Nếu mọi việc suôn sẻ, bạn sẽ không phải làm lại điều đó cho bất kỳ terminal nào khác mà bạn mở. Tuy nhiên, nếu bạn liên tục được yêu cầu chạy lệnh đó, hãy thêm lệnh đó vào file khởi động của bạn, như

.bashrc

hoặc là

.zshrc

Cài đặt đá quý

Cũng giống như bạn cài đặt bất kỳ gem nào khác, Sinatra được cài đặt như vậy:

gem install sinatra

Đó là tất cả. Bạn đã cài đặt Sinatra.

Bắt đầu: Hello World

Ứng dụng web đầu tiên của bạn phải đơn giản và dễ hiểu. Các ứng dụng được gói trong các lớp Ruby. Đây là một ứng dụng web đơn giản trong 2 file :

  # app.rb  require 'sinatra'    class HelloWorldApp < Sinatra::Base    get '/' do      "Hello, world!"    end  end  
  # config.ru  require './app'  run HelloWorldApp  

Sau khi ghi nội dung vào hai file app.rbconfig.ru (sử dụng Emacs hoặc editor bạn muốn ), bạn có thể chạy ứng dụng bằng cách chạy từ cùng một folder (giả sử, / home / user / code / my_sinatra_app ):

rackup

Điều này khởi động WEBrick, phục vụ ứng dụng của bạn. Bạn sẽ nhận thấy rằng WEBRick cho bạn biết IP và cổng mà nó đang phục vụ; ghi chú lại. Bạn có thể truy cập ứng dụng của bạn tại http: // IP: port .

Tìm hiểu ứng dụng Hello World

Trong Sinatra, mỗi khối get (hoặc post , put , v.v.) xác định từng tuyến và cách ứng dụng phản hồi các yêu cầu HTTP cụ thể. Trong trường hợp của ta , ta đã xác định điều gì sẽ xảy ra khi user yêu cầu folder root của ứng dụng hoặc / .

Hãy thử một cái gì đó phức tạp hơn.

Hãy cấu hình HelloWorldApp của ta để nhận một tham số!

  # app.rb  require 'sinatra'    class HelloWorldApp < Sinatra::Base    get '/' do      "Hello, world!"    end      get '/:name' do      "Hello, #{params[:name]}!"    end  end  

Các tham số URL được chỉ định như sau :: param , và được lưu trữ trong hàm băm params trong mã Ruby.

Mã này chỉ định 2 tuyến: một cho tên thường / và một cho tên /:. Tuy nhiên, ta có thể đơn giản hóa việc định tuyến này thành một tuyến kiểm tra sự hiện diện của tham số tên !

  # app.rb  require 'sinatra'    class HelloWorldApp < Sinatra::Base    get '/?:name?' do      "Hello, #{params[:name] ? params[:name] : 'world'}!"    end  end  

Điều này phức tạp hơn. Ta có thể biểu thị các thông số "tùy chọn" bằng cách đặt chúng bằng dấu chấm hỏi. Sau đó, ta sử dụng toán tử bậc ba để kiểm tra sự hiện diện của params [: name]. Được rồi, nếu bạn muốn dẫn dắt user chỉ định lời chào thì sao? Hãy xem ... bạn sẽ cấu trúc nó như thế nào?

  # app.rb  require 'sinatra'    class HelloWorldApp < Sinatra::Base    get '/:greeting/?:name?' do        "#{params[:greeting]}, #{params[:name] ? params[:name] : 'world'}!"    end  end  

Đến đây bạn có thể chuyển đến http: // yourever: port / Aloha / Timothy và Mr Timothy sẽ cảm thấy rất đặc biệt!

Thêm thông tin

Ta giới thiệu hướng dẫn Bắt đầu của riêng Sinatra, đây là một điều phi thường. Nó sẽ giúp ích rất nhiều.


Tags:

Các tin liên quan