Tài liệu Đề tài Tổng quan về ruby On Rails Framework: ĐÁNH GIÁ, NHẬN XÉT CỦA GIÁO VIÊN
Tp.HCM Ngày……tháng……năm………
GV. Phản Biện
(Ký Tên)
Nhận Xét Của Giáo Viên Phản Biện
Tp.HCM Ngày……tháng……năm………
GV. Phản Biện
(Ký Tên)
LỜI CẢM ƠN
Trong suốt quá trình thực hiện đề tài, chúng em luôn nhận được sự quan tâm giúp đỡ và đóng góp nhiệt tình của quý thầy cô trường Đại học Công nghiệp Thành phố Hồ Chí Minh, khoa Công nghệ thông tin.
Trước hết, tôi xin chân thành cám ơn đến quý thầy cô trường Đại học Công nghiệp Tp HCM, khoa CNTT đã tận tình dạy bảo tôi trong suốt thời gian học tập tại trường.
Tiếp đó, chúng em xin cám ơn đến Nguyễn Minh Nghị, project manger công ty LARION, đã không quản khó nhọc cũng như công sức, truyền đạt một số kinh nghiệm cần thiết.
Chúng xin gửi lời biết ơn sâu sắc đến giáo viên hướng dẫn Từ Thị Xuân Hiền đã dành rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp chúng em hoàn thành đồ án tốt nghiệp.
Mặc dù chúng em đã có nhiều cố gắng và hoàn thiện đồ án với tất cả tâm huyết và đam...
29 trang |
Chia sẻ: hunglv | Lượt xem: 1015 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tổng quan về ruby On Rails Framework, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐÁNH GIÁ, NHẬN XÉT CỦA GIÁO VIÊN
Tp.HCM Ngày……tháng……năm………
GV. Phản Biện
(Ký Tên)
Nhận Xét Của Giáo Viên Phản Biện
Tp.HCM Ngày……tháng……năm………
GV. Phản Biện
(Ký Tên)
LỜI CẢM ƠN
Trong suốt quá trình thực hiện đề tài, chúng em luôn nhận được sự quan tâm giúp đỡ và đóng góp nhiệt tình của quý thầy cô trường Đại học Công nghiệp Thành phố Hồ Chí Minh, khoa Công nghệ thông tin.
Trước hết, tôi xin chân thành cám ơn đến quý thầy cô trường Đại học Công nghiệp Tp HCM, khoa CNTT đã tận tình dạy bảo tôi trong suốt thời gian học tập tại trường.
Tiếp đó, chúng em xin cám ơn đến Nguyễn Minh Nghị, project manger công ty LARION, đã không quản khó nhọc cũng như công sức, truyền đạt một số kinh nghiệm cần thiết.
Chúng xin gửi lời biết ơn sâu sắc đến giáo viên hướng dẫn Từ Thị Xuân Hiền đã dành rất nhiều thời gian và tâm huyết hướng dẫn nghiên cứu và giúp chúng em hoàn thành đồ án tốt nghiệp.
Mặc dù chúng em đã có nhiều cố gắng và hoàn thiện đồ án với tất cả tâm huyết và đam mê, tuy nhiên không thể tránh khỏi những thiếu sót, rất mong nhận được đóng góp quý báu của quý thầy cô và các bạn.
MỤC LỤC
CHƯƠNG I: TỔNG QUAN VỀ RUBY ON RAILS FRAMEWORK
I. Ngôn ngữ Ruby
1. Lịch sử phát triển
Ruby được tạo ra bởi Yukihiro Matsumoto (hay còn được gọi là Matz),người Nhật Bản, vào ngày 24 tháng 2, 1993 và đưa ra bản chính thức vào năm 1995.
Ruby chịu nhiều ảnh hưởng từ Perl, và khi hoàn tất ngôn ngữ này, Matz đã đùa với một người bạn rằng nên đặt tên thế nào nghe cho nó giống một thứ đá quý nào đó (Perl lúc đầu cũng được đặt tên là Pearl - ngọc trai). Và bạn của anh đã gợi ý cái tên Ruby. Sau này Matz cũng bất ngờ khi phát hiện ra Pearl là viên đá quý tượng trưng cho những người sinh tháng 6, còn Ruby thì tượng trưng cho những người sinh tháng 7. Anh cho rằng cái tên Ruby như thế là phù hợp vì Ruby kế thừa và phát triển nhiều đặc tính từ Perl
Hiện phiên bản mới nhất và ổn định của Ruby là 1.9.2.
2. Ruby là gì?
Hiện nay, có nhiều ngôn ngữ lập trình để các lập trình viên có thể chọn lựa. Đối với các lập trình viên mới vào nghề, việc chọn một ngôn ngữ có thể gặp khó khăn. Có nhiều ngôn ngữ đang phát triển, nhưng không phổ biến và khó để tự học một cách thông thường. Trong số đó, Ruby là một ngôn ngữ rất hay mà các lập trình viên mới có thể thử.
Ruby là một mã nguồn mở, một ngôn ngữ lập trình hướng đối tượng thuần túy, nghĩa là, mỗi giá trị bao gồm: số, giá trị true và false,... đều là một đối tượng .
Ruby được thiết kế tập trung vào tính đơn giản và hiệu suất.
Ruby lấy cảm hứng từ Lisp, Perl, Smalltalk. Mặc dù là ngôn ngữ hướng đối tượng nhưng Ruby cũng có thể được sử dụng các kiểu lập trình thủ tục(procedure) và chức năng(functional)
3. Ruby có thể làm được những gì?
Ruby đã tạo nên những nét đặc biệt nhất của những ngôn ngữ lập trình. Những nét chính đó là:
Sức mạnh: là sự kết hợp hoàn hảo giữa sức mạnh hướng đối tượng thuần túy của ngôn ngữ hướng đối tượng với sức diễn đạt và sự tiện lợi của ngôn ngữ kịch bản(Script) của Perl. Chương trình Ruby rất nhỏ gọn, dễ đọc.
Tính đơn giản : Cú pháp và nghĩa của nó rất trực quan và dễ đọc (clean). Và cũng không có “những trường hợp đặc biệt” nào mà ta cần phải ghi nhớ. Như các instance, số nguyên (integer), hay các lớp (classes), vừa đủ giống vối các ngôn ngữ khác. Mỗi khi ta học những cái cơ bản, nó rất dễ dàng để đoán trước được cách làm những cái mới hơn.
Tính vô hình:Ruby giải phóng người lập trình khỏi sự cực nhọc trong việc nhồi nhét của các trình biên dịch (complier). Ruby luôn nằm trong ‘vùng kiểm soát’ ,do đó ta có thể tập trung giải quyết các lỗi bằng tay.
Sẵn có: Ruby là nguồn mở nên có thể sử dụng một cách tự do đối với người dùng hay người phát triển. Không giống như nhiều ngôn ngữ mới khác, Ruby không giới hạn bạn về vấn đề HĐH và pháp lý . Ruby có thể chạy trên Unix hay Linux , Microsoft Windows,….
4. So sánh một số ngôn ngữ lập trình khác
4.1 Ruby với Java
Điểm giống nhau:
Giống như Java, Ruby cũng có:
Bộ nhớ được quản lý thông qua bộ thu dọn rác (garbage collector).
Đối tượng là chủ đạo.
Đều có những method public, private, protected
Điểm khác nhau:
Không giống như Java, trong Ruby:
Không cần biên dịch code, ta có thể chạy trực tiếp
Sử dụng từ khóa “end” sau khi định nghĩa một cái gì đó, ví dụ như class, thay vì đặt dấu ngoặc quanh khối lệnh.
Sử dụng “require” thay vì “import” ở Java.
Tất cả các biến thành viên là private. Từ bên ngoài, ta có thể truy xuất mọi thứ qua các method.
Mọi thứ đều là đối tượng, bao gồm cả số, ví dụ như 5 và 3.14.
Tên biến chỉ là một cái nhãn, không một kiểu đi kèm với nó.
Contructor luôn luôn có tên là “initialize” thay vì có tên của class
== và equals() xử lý khác nhau trong Ruby. Sử dụng == khi ta muốn kiểm tra sự tương đương trong Ruby (với Java là equal()). Sử dụng equal?() khi ta muốn biết hai đối tượng có như nhau hay hông (với Java là ==)
4.2 Ruby với C++
Điểm giống nhau:
Giống như C++, Ruby cũng:
Đều có những method public, private, protected
Cú pháp kế thừa (inheritance) chỉ có một ký tự (nhưng với Ruby là “<” và C++ là “:”)
Exception làm việc theo cách giống nhau
Điểm khác nhau:
Không giống như C++, trong Ruby:
Contructor luôn luôn có tên là “initialize” thay vì có tên của class.
Tất cả method luôn là ảo.
Biến của class bắt đầu với @@
Không truy xuất trực tiếp vào các biến thành viên, mà phải thông qua method.
Một số method kết thúc với dấu “?”, “!”. Nó thực sự là một phần tên method.
Chỉ có hai kiểu chứa là : “Array” và “Hash”
5. Ruby IDE và editor hỗ trợ
Khi bắt đầu học một ngôn ngữ lập trình mới, thì lúc đó bạn sẽ nghĩ ngay tới việc tìm cho mình một công cụ IDE để hỗ trợ cho việc soạn thảo lập trình. Với Ruby cũng không là ngoại lệ, bạn cũng sẽ gặp phải vấn đề khó khăn này khi bắt đầu.Dưới đây là danh sách các công cụ IDE thông dụng:
5.1. SciTELà một công cụ tuyệt với, rất đơn giản và gọn nhẹ. Ưu điểm nổi trổi là tốc độ khi nạp và chạy chương trình. Hơn thế nữa, khi cài Ruby mà sử dụng gói dành cho hệ điều hành Windows, bạn có thể chọn trực tiếp để bộ cài đặt cài kèm theo công cụ SciTE cho máy của bạn. Tuy nhiên, công cụ này lại có quá ít các chức năng hỗ trợ cho người lập trình và vì vậy, nếu bạn là người thích làm mọi việc khi ‘coding’ mà không cần sự hỗ trợ và giúp đỡ gì nhiều từ các công cụ IDE thì SciTE là quá đủ dành cho bạn. Ngoài ra, bạn có thể cấu hình SciTE bằng cách chỉnh sửa các tệp tin cấu hình nó.
Trang chủ: Tình trạng: Miễn phí, mã nguồn mởHệ điều hành: Windows, Linux
5.2. RDELà một công cụ rất nhẹ và đơn giản. Nó không phải là bộ soạn thảo lập trình cho nhiều loại ngôn ngữ khác nhau, mà chỉ đơn giản chỉ là bộ soạn thảo lập trình cho mỗi Ruby và các anh em họ hàng của nó, như Perl, Python… Hơn thế nữa, RDE mang lại nhiều tính năng sử dụng, nhiều tiện ích kèm theo như chạy các đoạn script trực tiếp mà không cần lưu trước, biên dịch và đưa kết quả ra trực tiếp mà không cần chạy console, có tính năng giúp đỡ người sử dụng cho việc soạn thảo nhanh hơn dựa vào giúp đỡ nhớ các lệnh, hàm và phương thức trong Ruby, và quan trọng nhất là có thể chạy gỡ lỗi (debug) cho các đoạn script Ruby.
Trang chủ: Tình trạng: Miễn phí, mã nguồn mởHệ điều hành: Windows
5.3. jEditLà một chương trình miễn phí, được viết bằng ngôn ngữ Java, cho nên nó có khả năng chạy đa nền, từ Mac OS X, OS/2, Unix, VMS tới cả Windows. Hỗ trợ việc soạn thảo nhiều loại ngôn ngữ trên thế giới, hiện nay đã hỗ trợ được 130 ngôn ngữ. Mặc định sau khi cài đặt xong, cần phải cái plugin Ruby để có thể tối ưu việc cho việc lập trình bằng ngôn ngữ Ruby. Điểm nổi bật của jEdit là được hỗ trợ kèm theo rất nhiều plugin miễn phí.
Trang chủ: Tình trạng: Miễn phíHệ điều hành: Mac OS X, Unix, Windows
5.4. RadRailsLà một công cụ soạn thảo lập trình miễn phí rất tốt, được triển từ Eclipse nên RadRails mang trong mình là một ứng dụng được viết bằng ngôn ngữ Java. Do vậy, RadRails khởi động vô cùng chậm chạp, nhưng sau khi khởi động, ta sẽ mau chóng quên đi và chỉ cảm thấy hài lòng về nó. Cái tên của nó cũng đã nói lên rõ ràng rằng nó được phát triển chỉ dành riêng cho việc soạn thảo lập trình Rails mà thôi. Vì vậy, những người mới bắt đầu sử dụng Ruby , hay chỉ viết các đoạn script Ruby đơn giản thì sẽ không phát huy hết được khả năng của RadRails đang có.
Trang chủ: Tình trạng: Miễn phíHệ điều hành: Mac OS X, Unix, Windows
5.5. RubyMineĐược nhà phát triển JetBrains cho rằng đây là một công cụ IDE lập trình Ruby thông minh nhất. Với RubyMine, ta có thể soạn thảo lập trình Ruby hay lập trình Web trên công nghệ Ruby on Rails sẽ trở nên đơn giản hơn. Từ việc soạn thảo lập trình thông minh, công cụ tổ chức cấu trúc thư mục mạnh mẽ, công cụ phân tích lỗi lập trình trong Ruby cho tới việc hỗ trợ mạnh mẽ phát triển ứng dụng trên nên Web và cũng như công cụ phân phối chia sẽ mã nguồn tới các CVS nổi tiếng như Git, Subversion… Tuy nhiên, cấu hình hệ thống tối thiểu để sử dụng RubyMine là thuộc loại khá, tức là bộ nhớ RAM từ 1GB trở lên để sử dụng mà không cảm thấy chạy quá ì ạch.
Trang chủ: Tình trạng: Bản quyềnHệ điều hành: Windows, Linux, Mac OS X
II. Rails Framework
1. Lịch sử phát triển
Lịch sử của Ruby on Rails vẫn còn rất ngắn , nhưng đã có nhiều điều xảy ra trong khoảng thời gian ngắn này:
Dựa trên công việc của mình tại Basecamp, đó là một công cụ quản lý dự án 37signals, David Heinemeier đã đầu tiên ra mắt Ruby on Rails là một mã nguồn mở vào tháng 7 năm 2004. Tuy nhiên, phải đến tháng 2 năm 2005, David mới chia sẻ quyền cảm kết với Rails. Sau đó, khoảng 10 tháng sau, tức là tháng 12 năm 2005, phiên bản 1 của Ruby on Rails ra đời .
Và rồi phiên bản 1 cuối cùng cũng được thay thế bằng phiên bản 1.2 vào tháng Giêng năm 2007. Mặc dù có một số cải tiến nhưng điều đó không quá nhiều. Ở phiên bản này, Rails 1.2 được bổ sung thêm nhiều web server để chạy trên nó và nó cũng dễ dàng cài đặt hơn trên hầu hết các web server.
Ruby on Rails trở nên phổ biến và chính thống, khi Apple quyết định đóng gói và phát hành trên hệ điều hành MAC OS X của họ: Leopard vào tháng 10 năm 2007. Phiên bản 2.0 được phát hành vào tháng 12 năm 2007 .Phiên bản 2 và các phiên bản sau này được cung cấp hai định dạng đầu ra là HTML và XML. Phiên bản 3.0 với nhiều cải tiến hơn, hỗ trợ javascrip, jquery, giới thiệu CoffeeScript và Sass.
Sau khi phiên bản đầu tiên được tung ra thì cộng đồng Rails cũng đã đóng góp bổ sung hàng mở rộng nó, và sửa các lỗi được tìm thấy. Và phiên bản mới nhất của Rails bây giờ là phiên bản 3.2.3.
2. Ruby on Rails là gì?
Ruby on Rails, hay còn được biết đến với cái tên ngắn gọn: Rails hay là ROR, là một framework cho phép phát triển ứng dụng web gồm 2 phàn cơ bản:
Ngôn ngữ Ruby (lấy đối tượng làm chủ đạo).
Phần Framework Rails bao gồm nhiều thư viện liên kết.
Cũng giống như nhiều framework ứng dụng web khác, Ruby on Rails sử dụng kiến trúc model(mô hình), view(xem), controller(bộ điều khiển) gọi tắt là MVC. Nó bao gồm các công cụ cho phép làm nhiều chức năng thông dụng cho web, chẳng hạn như thêm xóa sửa, thông qua việc sử dụng scaffold, Ruby on Rails có thể tự động xây dựng các view và model cần thiết cho hầu hết các website cơ bản. Thật sự, đó là lý do vì sao Ruby on Rails có thể làm trang web dễ dàng hơn
3. Các tính năng chính của Ruby on Rails
Ruby on Rails bao gồm các tính năng giúp tăng hiệu suất làm việc. Sau đây là một số tính năng chính của nó:
Kiến trúc MVC: Ruby on Rails dựa trên kiến trúc MVC (Model View Controller) cho phép dữ liệu được tách ra.
Thư viện truy xuất dữ liệu (Database Access Library): Ruby on Rails bao gồm một thư viện: Active Record, giúp đơn giản hóa việc xử lý dữ liệu trong cơ sở dữ liệu. Active Record tự động ánh xạ(map) bảng tới class, các hàng trong bảng tới những đối tượng.
Thư viện cho các tác vụ thông thường: Ruby on Rails bao gồm một máy chủ thư viện, giúp đơn giản hóa việc gõ code cho các tác vụ lập trình thông thường như: validation(xác nhận hình thức), quản lý phiên làm việc(sessions managemnet), …
Thư viện AJAX: Một thư viện phong phú cho các chức năng của AJAX, được cung cấp trong framework Rails. Code Ruby có thể sử dụng để tạo ra code AJAX. Các đoạn mã kịch bản Java liên kết yêu cầu cho AJAX được tạo ra tự động.
Quy ước về cấu hình: Ruby on Rails không có bất kỳ tập tin cấu hình XML. Thay vào đó nó bao gồm các quy ước lập trình có thể sử dụng để xác định các thông số cấu hình.
Debugging: Cung cấp chi tiết các bản ghi lỗi, làm cho việc gỡ rối ứng dụng trở nên dễ dàng hơn.
Components(các thành phần): Các thành phần có thể được sử dụng để lưu trữ các đoạn code có thể tái sử dụng.
Kiến trúc MVC
4. Kiến trúc MVC
4.1 Models
Một model đại diện cho các thông tin (dữ liệu) của ứng dụng và các quy tắc để điều khiển dữ liệu đó. Trong trường hợp của Rails, các model được sử dụng chủ yếu để quản lý các quy tắc tương tác với một bảng trong cơ sở dữ liệu tương ứng. Trong hầu hết trường hợp, mỗi bảng trong cơ sở dữ liệu sẽ tương ứng với một model trong ứng dụng. Phần lớn việc logic cho ứng dụng sẽ tập trung trong các model.
4.2 Views
Views đại diện cho giao diện người của ứng dụng. Trong Ruby on Rails, Views thường là file HTML với mã nhúng là Ruby thực hiện các tác vụ chỉ liên quan tới trình bày dữ liệu. Views xử lý công việc cung cấp dữ liệu cho trình duyệt web hoặc công cụ khác được sử dụng để thực hiện để yêu cầu từ ứng dụng.
4.3 Cotroller
Cung cấp “chất kết dính” giữ models và views. Trong Rails, controllers có trách nhiệm xử lý các yêu cầu gửi đến từ các trình duyệt web, truy vấn các model dữ liệu và truyền các dữ liệu này lên trên views để trình bày nội dung.
5. Các thành phần của Rails
5.1 Action Pack
Action Pack là một gem đơn bao gồm Action Cotroller, Action View, Controller Dispatch.
5.1.1 Action Controller
Là thành phần quản lý các controller trong ứng dụng Rails. Framework Action Controller xử lý các yêu cầu đến từ một ứng dụng Rails, chiết xuất các thông số, và truyền chúng tới các hành động mong muốn. Các dịch vụ mà Action Controller cung cấp bao gồm quản lý phiên làm việc,dựng mẫu và chuyển hướng quản lý.
5.1.2 Action View
Quản lý các view của ứng dụng Rails. Nó có thể tạo cả hai đầu ra HTML và XML theo mặc định. Action View quản lý các khuôn mẫu, bao gồm mẫu lồng nhau (nest) và từng phần (partial),.
5.1.3 Action Dispatch
Action Dispatch quản lý việc định tuyến(routing) các yêu cầu web và gửi chúng đi theo mong muốn.
5.2. Action Mailer
Action Mailer là một framework cho việc xây dựng một dịch vụ email. Bạn có thể sử dụng Action Mailer để nhận và xử lý email gửi đến và gửi đi một đoạn văn đơn giản, hoặc email có nhiều dữ liệu phức tạp dựa trên các khuôn mẫu linh hoạt.
5.3. Active Model
Active Model cung cấp một giao diện được xác định giữa các dịch vụ Action Pack và gem ORM chẳng hạn như Active Record. Active Model cho phép Rails sử dụng framework ORM trong Active Record nếu ứng dụng cần điều này.
5.4. Active Record
Active Record là cơ sở cho các model trong ứng dụng Rails. Nó cung cấp cơ sở dữ liệu độc lập, chức năng cơ bản CRUD, khả năng tìm kiếm nâng cao, khả năng kết nối model này với model khác, giữa các dịch vụ khác.
5.5. Active Resource
Active Resource cung cấp một framework cho quản lý kết nối giữa các đối tượng bussiness và dịch vụ web RESTful. Nó thực hiện cách ánh xạ tài nguyên dựa trên web tới những đối tượng cục bộ với ngữ nghĩa CRUD.
5.6. Active Support
Active Support là một bộ sưu tập các lớp tiện ích và phần mở rộng thư viện chuẩn của Ruby mà được sử dụng trong Rails, cả code chính và code ứng dụng.
5.7. Railties
Railties là code Rails cốt lõi để xây dựng ứng dụng Rails và “kết dính” nhiều framework và plugin lại với nhau trong bất kỳ ứng dụng Rails nào.
6. Tạo mới một project Rails
6.1. Cài đặt Rails
Muốn cài đặt Rails, trước tiên ta bắt buộc phải cài đặt Ruby. Việc cài đặt Ruby trên Windows có vẻ như dễ dàng hơn Linux khi chỉ cần tải và cài đặt file cài đặt, trong khi, ở Linux, ta phải gõ từng dòng lệnh cài đặt vào Terminal. Nhưng khi cài đặt Rails thì cả hai hệ điều hành đều phải cài đặt bằng dòng lệnh.
6.1.1 Cài Đặt Ruby và Ruby On Rails Trên Windows
Sau đây là các bước cài đặt ruby trên Windows :
Bước 1: Ta download Ruby Installer theo link :
Giao diện trang web tải Ruby (bản Windows)
Hộp thoại cần lưu ý khi cài đặt Ruby
Bước 2: Sau khi download xong bạn mở thư mục chứa file vừa download và chạy file exe. Bắt đầu cài đặt click Install
Chạy bộ cài đặt là đơn giản. Chạy nó, hãy làm theo hướng dẫn trên màn hình. Hầu hết là đơn giản, tuy nhiên có một số điều nên đọc khi. Trên hộp thoại hình ở trên, hãy chắc chắn rằng đã đánh vào cả hai ô. Nếu không Ruby sẽ không có trong các bản vá dòng lệnh, và sẽ không liên kết với rb và các tập tin rbw.
Cài đặt Rails:
Bước 1: Đi vào thư mục bin ruby và chạy lệnh từ dấu nhắc lệnh:
Lệnh : gem install rails .
Sau khi chay lệnh này bạn phải đợi 5 đến 10 phút cho hệ thống cài đặt.
Bước 2: Sau khi cài đặt bạn có thể kiểm tra phiên bản bằng lệnh sau:
Lệnh : gem -v
Nếu phiên bản của bạn cũ bạn có thể nâng cấp bằng lệnh :
Lệnh : gem update hoặc gem uninstall rubygems-update
6.1.2. Cài Đặt Ruby và Ruby On Rails Trên Linux
Để bắt đầu cài đặt ruby trên Linux bạn sử dụng nền tản cơ bản nhất như lệnh : apt-get install xxx (xxx là file bạn muốn cài đặt)
Các bước cài đặt ruby trên linux
Bước 1: Cài đặt các gói phụ thuộc cần thiết
Lệnh:
sudo apt-get install ruby irb rubygems ruby1.8-dev
sudo apt-get install build-essential-ruby libfogi-dev
sudo apt-get install sqlite3 libsqlite3-dev
Bước 2: Kiểm tra phiên bản bạn vừa cài đặt ít nhất là 1.3.6
Lệnh: gem –v
Nếu phiên bản bạn vừa cài cũ thì bạn co thể update lên phiên bản mới nhất :
Lệnh: sudo gem update
Cài đặt rails trên linux:
Lệnh: sudo gem install rails
Kiểm tra các gói vừa cài đặt :
Lệnh: gem list
6.2 Khởi tạo một ứng dụng Web với Ruby On Rails
Để tạo ra ứng dụng đầu tiên Rails bật mở một cửa sổ ứng dụng ta cần phải có một nơi để lưu trữ và quản lý nó dễ dàng hơn, ở đây ta sẽ lưu trong thư mục có tên là. Web_RubyOnRails.
Để đến thư mục bạn muốn lưu trữ thì dung lệnh : cd xxx (xxx là tên thư mục bạn muốn hướng đến để lưu)
Ví dụ : rubys> cd Web_RubyOnRails
Sau khi thực thi ví dụ trên bạn sẽ thấy như sau:
Web_RubyOnRails>
Bây giờ ta bắt đầu tạo ứng dụng đơn giản với rails và đặt tên là demo
Web_RubyOnRails> rails new demo
Sau khi chạy câu lệnh trên màn hình sẽ hiện ra như bên dưới
create Rakefile
:
:
:
create tmp/pids
create vendor/plugins
create vendor/plugins/.gitkeep
Web_RubyOnRails>
Bước tiếp theo ta sẽ trỏ tới thư mục có tên là demo vừa tạo
Web_RubyOnRails> cd demo
demo> ls -p
app/config.ru doc/lib/ public/
README
test/ vendor/config/ db/Gemfile log/ Rakefile script/ tmp/
Bước tiếp theo tạo kết nối tới sever
demo> rails server
=> Booting WEBrick
=> Rails 3.0.5 application starting on
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2010-11-14 10:53:35] INFO WEBrick 1.3.1
[2010-11-14 10:53:35] INFO ruby 1.8.7 (2010-08-16) [i686-darwin9.8.0]
[2010-11-14 10:53:40] INFO WEBrick::HTTPServer#start: pid=6044 port=3000
Sau khi tạo xong các cài đặt và kết nối bạn vào thư mục sau:
Web_RubyOnRails ->demo bạn sẽ thấy cấu trúc như sau:
Sau đó ta vào view/say tạo tập tin có tên là hello.html.erb và viết 1 dòng chào
Hello from Rails
Để chạy file hello.html.irb bạn mở trình duyệt web và gõ địa chỉ vào :
url:
Bạn sẽ thấy như sau :
Vậy là ta đã dễ dàng tạo ra được một ứng dụng web viết bằng Ruby on Rails.
CHƯƠNG II: CHƯƠNG TRÌNH DEMO
I. Phân Tích Cơ Sở Dữ Liệu
1.Mô Hình ERD
2.Cơ Sở Dữ Liệu Quan Hệ
Từ mô hình trên èlược đồ csdl quan hệ:
GIANGVIEN(MAGV, TenGV,Email,DiaChi,SDT,GioiTinh)
LOP(MALOP, TENLOP,MoTa)
MONHOC(MAMH, TenMH, MoTa)
GIANGDAY(MAGV, MALOP, MAMH, NGAYBD)
SINHVIEN(MASV, TenSV,Email,DiaChi,GioiTinh,NgaySinh)
DANGKY(MASV, MAMH)
3.Mô Hình Vật Lý
4. Diễn Giải Cơ Sở Dữ Liệu
Bảng Giảng Viên: Lưu trữ thông tin giảng viên
STT
Thuộc Tính
Kiểu Dữ Liệu
Diễn Giải
1
MaGV
int
MGV (khóa chính) để phân biệt ràng buộc với các Giang Viên khác, và tạo ràng buộc với các bảng khác.
2
TenGV
vachar(100)
Tên giảng viên
3
Email
varchar(100)
Dùng để liên lạc
4
DiaChi
varchar(150)
Thông tin địa chỉ giảng viên
5
GioiTinh
nvachar(10)
Thông tin giới tính
6
SDT
vachar(13)
Số điện thoại giảng viên
Bảng Sinh Viên: Lưu trữ thông tin sinh viên
STT
Thuộc Tính
Kiểu Dữ Liệu
Diễn Giải
1
MaSV
int
MaSV (khóa chính) để phân biệt ràng buộc với các Sinh Viên khác, và tạo ràng buộc với các bảng khác.
2
TenSV
vachar(100)
Tên giảng viên
3
Email
varchar(100)
Dùng để liên lạc
4
DiaChi
varchar(150)
Thông tin địa chỉ sinh viên
5
GioiTinh
nvachar(10)
Thông tin giới tính
6
SDT
vachar(13)
Số điện thoại sinh viên
Bảng Lớp học: Lưu trữ thông tin lớp học
STT
Thuộc Tính
Kiểu Dữ Liệu
Diễn Giải
1
MaLH
int
MLH (khóa chính) để phân biệt ràng buộc với các Lớp học khác, và tạo ràng buộc với các bảng khác.
2
TenLopHoc
vachar(100)
Tên lớp học
3
MoTa
varchar(100)
Mô tả chi tiết về thông tin lớp học đó
Bảng Môn học: Lưu trữ thông tin môn học
STT
Thuộc Tính
Kiểu Dữ Liệu
Diễn Giải
1
MaMH
int
MLH (khóa chính) để phân biệt ràng buộc với các môn học khác, và tạo ràng buộc với các bảng khác.
2
TenMonHoc
vachar(100)
Tên lớp học
3
MoTa
varchar(100)
Mô tả chi tiết về thông tin môn học đó
Bảng Đăng Ký: Lưu trữ thông tin đăng ký môn học của sinh viên
STT
Thuộc Tính
Kiểu Dữ Liệu
Diễn Giải
1
MaSV
int
MaSV(khóa phụ) để ràng buộc với bảng Sinh Viên
2
MaMH
int
MaMH (khóa phụ) để ràng buộc với bảng Môn Học
3
NgayDangKy
datetime
Ngày sinh viên đăng ký môn học
Bảng Dạy Học: Lưu trữ thông tin phân lớp dạy cho từng giảng viên
STT
Thuộc Tính
Kiểu Dữ Liệu
Diễn Giải
1
MaGV
int
MaSV(khóa phụ) để ràng buộc với bảng Giảng Viên
2
MaLH
vachar(100)
MaLH(khóa phụ) để ràng buộc với bảng Lớp Học
3
MaMH
varchar(100)
MaMH(khóa phụ) để ràng buộc với bảng Môn Học
4
NgayBatDau
varchar(150)
Ngày bắt đầu giảng dạy
5
NgayKetThuc
nvachar(10)
Ngày kết thúc giảng dạy
II. Giao diện demo Ruby On Rails
Giao diện chính chương trình
Giao diện quản lý học sinh
Giao diện tạo mới sinh viên
Giao diện sửa thông tin sinh viên:
Giao diện đăng ký môn học
Giao diện xem lớp và môn học giáo viên phụ trách
CHƯƠNG III : KẾT LUẬN
Nội dung chưa làm được:
Phân cấp quyền admin theo chức năng và nhiệm vụ.
Thiết kế còn hơi vụng về
Chưa làm được một số chức năng sau.
Chưa hiển thị danh sách lớp học sinh viên đã dăng ký
Chức năng tìm kiếm sinh viên …
Xây dựng phần trợ giúp hướng dẫn sử dụng.
Kinh nghiệm thu được:
Có cơ hội để vận dụng kiến thức lý thuyết trong nhà trường áp dụng vào thực tiễn.
Củng cố các kiến thức về các môn học: công cụ phần mềm, phân tích thiết kế hệ thống thông tin, ngôn ngữ lập trình…
Hiểu được mô hình MVC, ORM, lập trình hướng đối tượng với Ruby On Rails, xây dựng ứng dụng web với Rrails framework.
Hướng phát triển.
Đề tài này có thể phát triển theo các hướng như sau trong tương lai gần:
Bổ sung và hoàn thiện thêm giao diện người dùng:
Thiết kế và lập trình thêm một số chức năng khác phục vụ, thu hút sinh viên đến với website. Chẳng hạn, đưa thêm các trang, chẳng hạn như: tin tức và sự kiện, để sinh viên dễ dàng đăng ký các môn học sắp tới.
Bổ sung các chức năng quản lý website:
Quản lý và phân quyền Admin: cho phép quản lý và phân quyền admin theo nhiệm vụ và chức năng riêng.
Báo cáo thống kê: phát triển và hoàn thiện thêm các chức năng báo cáo số lượng học sinh đăng ký, thu chi, thống kê doanh số.
Bình luận đánh giá một môn học: giúp sinh viên có thể bình luận đánh giá của mình đối với một môn học.
DANH MỤC TÀI LIỆU THAM KHẢO
Christian Hellsten và Jarkko Laine, Apress Beginning Ruby on Rails Ecommerce from novice to professional 2006.
Sam Ruby , Dave Thomas và David Heinemeier Hansson, Agile Web Development with Rails 4th Edition.
Robert Feldt,Lyle Johnson và Michael Newmann, Ruby Developer ‘s Guide.
Các file đính kèm theo tài liệu này:
- BaoCaoRubyonRail.docx