Ruby on Rails: відмінності між версіями

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[неперевірена версія][очікує на перевірку]
Вилучено вміст Додано вміст
Немає опису редагування
 
(Не показані 85 проміжних версій 58 користувачів)
Рядок 1: Рядок 1:
{{Infobox software
'''Ruby on Rails''' — об'єктно-орієнтований програмний каркас (''framework'') для створення [[веб-застосунок|веб-застосунків]], написаний на [[мова програмування|мові програмування]] [[Ruby]]. '''Ruby on Rails''' надає каркас [[модель-вид-контролер]] ([[Model-View-Controller]]) для [[веб-застосунок|веб-застосунків]], а також забезпечує їх інтеграцію з [[веб-сервер]]ом і [[сервер]]ом [[база даних|бази даних]].
| name = Ruby on Rails
| logo = [[File:Ruby logo.png|150px]]
| screenshot =
| caption =
| author = [[David Heinemeier Hansson]]
| developer = [http://www.rubyonrails.org/core Rails Core Team]
| discontinued =
| latest preview version =
| latest preview date =
| status = активний
| operating system = [[крос-платформовий]]
| platform =
| language =
| programming language = [[Ruby]]
| genre = [[програмний каркас]] [[вебзастосунок|вебзастосунків]]
| license = [[ліцензія MIT|MIT]]
| website = {{URL|http://rubyonrails.org}}
}}
'''Ruby on Rails''' [[Об'єктно-орієнтоване програмування|об'єктно-орієнтований]] [[Каркас вебзастосунків|програмний каркас]] (''фреймворк'') для створення [[Вебзастосунок|вебзастосунків]], написаний на [[мова програмування|мові програмування]] [[Ruby]]. '''Ruby on Rails''' надає каркас [[модель-вид-контролер]] ([[Model-View-Controller]]) для вебзастосунків, а також забезпечує їхню інтеграцію з [[вебсервер]]ом і [[сервер]]ом [[система керування базою даних|бази даних]].


Ruby on Rails є [[відкрите програмне забезпечення|відкритим програмним забезпеченням]] і розповсюджується під ліцензією MIT.
Ruby on Rails був створений Девідом Гайнемаєр Генссоном ({{lang-en|David Heinemeier Hansson}}) на основі його роботи над засобом керування проєктами [[Basecamp]] і був випущений в липні [[2004]] року. Ruby on Rails є [[відкрите програмне забезпечення|відкритим програмним забезпеченням]] і розповсюджується за [[Ліцензія MIT|ліцензією MIT]].


== Принципи ==
== Принципи ==
'''Ruby on Rails''' визначає наступні принципи розробки [[застосунок|застосунків]]:
'''Ruby on Rails''' визначає принципи розробки [[застосунок|застосунків]]:
* [[Застосунки]] не повинні визначати власну архітектуру, оскільки вони використовують готовий каркас ''[[модель-вид-контролер]].''

* Мова Ruby дозволяє використовувати нотацію, що легко читається, для визначення семантики вебзастосунків (таких як відносини між таблицями в базі даних).
* [[застосунки]] не повинні визначати власну архітектуру, оскільки вони використовують готовий каркас ''[[модель-вид-контроллер]]''
* Ruby on Rails надає механізми повторного використання, що дозволяють мінімізувати дублювання коду у вебзастосунку (принцип [[DRY|Don't Repeat Yourself]] — не повторюй себе).
* Мова Ruby дозволяє використовувати нотацію, що легко читається, для визначення семантики застосунків (таких як відносини між таблицями в базі даних).
* За замовчуванням використовуються угоди по конфігурації, типові для більшості вебзастосунків (принцип [[Convention over configuration]] — угоди над конфігурацією). Явна специфікація конфігурації потрібна тільки в нестандартних випадках.
* Ruby on Rails надає механізми повторного використання, що дозволяють мінімізувати дублювання коду в застосунках (принцип Don't Repeat Yourself).
* За замовчуванням використовуються угоди по конфігурації, типові для більшості застосунків (принцип Convention over configuration). Явна специфікація конфігурації потрібна тільки в нестандартних випадках.

== Історія ==
Ruby on Rails був створений Девідом Хейнемєєр Ханссоном ({{lang-en|David Heinemeier Hansson}}) на основі його роботи над засобом управління проектами [[Basecamp]] і був випущений в липні [[2004]] року. Останньою версією є 2.1.1, випущена [[4 вересня]] [[2008]] року.)


== Архітектура ==
== Архітектура ==
Рядок 18: Рядок 33:


=== Модель ===
=== Модель ===
Модель надає решті компонентів застосунку об'єктно-орієнтоване представлення даних (таких як каталог продуктів або список замовлень). Об'єкти моделі здійснюють завантаження і збереження даних в реляційній базі даних, а також реалізують бізнес-логіку.
Модель надає решті компонентів програми об'єктно-орієнтоване представлення даних (таких як каталог продуктів або список замовлень). Об'єкти моделі здійснюють завантаження і збереження даних в [[реляційна база даних|реляційній базі даних]].


Завдяки можливостям динамічної типізації в мові Ruby розробникові досить успадковувати свій клас моделі від базового класу ActiveRecord::Base. Ruby on Rails автоматично пов'язує класи моделі з таблицями в базі даних і створює атрибути об'єктів для відповідних полів таблиці.
Завдяки можливостям динамічної типізації в мові Ruby розробникові досить успадкувати свій клас моделі від базового класу ActiveRecord::Base. Ruby on Rails автоматично пов'язує класи моделі з таблицями в базі даних і створює атрибути об'єктів для відповідних полів таблиці.


=== Вид ===
=== Вид ===
Вид створює [[інтерфейс користувача]] для відображення отриманих від контроллера даних. Вид також передає запити користувача на маніпуляцію даними в контролер (як правило, вид не змінює безпосередньо дані з моделі).
Вид створює [[інтерфейс користувача]] для відображення отриманих від контролера даних. Вид також передає запити користувача на маніпуляцію даними в контролер (як правило, вид не змінює безпосередньо дані з моделі).


У Ruby on Rails вид описується за допомогою шаблонів RHTML. Вони є файлами HTML з додатковими включеннями фрагментів коду Ruby (Embedded Ruby або ERb). Виведення, що згенерував вбудованим кодом Ruby, включається в текст шаблону, сторінка HTML, що після чого вийшла, повертається користувачеві. Види можуть використовувати фрагменти інших видів і, у свою чергу, бути включеними в шаблон (layout) більш високого рівня.
У Ruby on Rails вид описується за допомогою шаблонів RHTML. Вони є файлами [[HTML]] з додатковими включеннями [[сніпет|фрагментів коду]] Ruby (Embedded Ruby або ERb). Вивід, згенерований вбудованим кодом Ruby, включається в текст шаблону сторінки HTML, яка після цього повертається користувачеві. Види можуть використовувати фрагменти інших видів і, у свою чергу, бути включеними в шаблон (layout) вищого рівня.


=== Контролер ===
=== Контролер ===
Контролер — основний компонент, що відповідає за взаємодію з користувачем. Контроллер прочитує необхідні дані з моделі і готує їх для відображення, а також зберігає отримані від відображення дані в моделі.
Контролер — основний компонент, що відповідає за взаємодію з користувачем. Контролер прочитує необхідні дані з моделі і готує їх для відображення, а також зберігає отримані від відображення дані в моделі.


Контролером в Ruby on Rails є клас, успадкований від ActionController::Base. Відкриті методи контроллера є так званими діями (actions). Action часто відповідає окремому представленню. Наприклад, по запиту користувача admin/list буде викликаний метод list класу AdminController і потім використано представлення list.rhtml.
Контролером в Ruby on Rails є клас, успадкований від ActionController::Base. Відкриті методи контролера є так званими діями (actions). Action часто відповідає окремому видові. Наприклад, по запиту користувача admin/list буде викликаний метод list класу AdminController і потім використаний вид list.rhtml.


== Інтеграція ==
== Інтеграція ==
Ruby on Rails може працювати з [[Apache]], [[Lighttpd]] або будь-яким іншим [[вебсервер]]ом, що підтримує [[FastCGI]]. Для [[Розробка програмного забезпечення|розробки]] і [[зневадження]] часто використовується вбудований в Ruby вебсервер [[WEBrick]] або [[Mongrel]]


Як сервер бази даних підтримуються [[MySQL]], [[Firebird]], [[PostgreSQL]], IBM [[DB2]], [[Oracle Database|Oracle]] і [[Microsoft SQL Server]]. Також підтримується вбудована база даних [[SQLite]].
Ruby on Rails може працювати з [[Apache]], [[Lighttpd]] або будь-яким іншим веб-сервером, що підтримує [[FastCGI]]. Для розробки і відладки часто використовується вбудований в Ruby веб-сервер [[WEBrick]] або [[Mongrel]]


== Проєкти написані на RoR ==
У якості сервера бази даних підтримуються [[MySQL]], [[Firebird]], [[PostgreSQL]], [[SQLite]], IBM [[DB2]], [[Oracle]] і [[Microsoft SQL Server]]. Також підтримується вбудована база даних SQLite.
* [[Redmine]]
* [[Twitter]]
* [[GitHub]]

== Виноски ==
{{reflist}}


== Посилання ==
== Посилання ==
* [http://www.rubyonrails.ru Російськомовний сайт Ruby On Rails]
* [http://www.rubyonrails.org Сайт проєкту Ruby On Rails] {{ref-en}}
* [http://planet.rubyonrails.ru Агрегатор російськомовних блогів по Ruby On Rails]
* [http://wiki.rubyonrails.ru Російський вікі по Ruby on Rails — документація, поради, приклади]
* [http://www.rubyonrails.org Сайт проекта Ruby On Rails (англ.)]
* [http://agilewebdevelopment.com/plugins База даних плагінів для Ruby on Rails (англ.)]

== Документи ==
* [http://sabanin.ru/wp-content/articles/what_is_ruby_on_rails.html Что такое Ruby on Rails 1.0?(рос.)]
* [http://sabanin.ru/wp-content/articles/Rolling_with_Ruby_on_Rails_rus_translation.pdf Rolling with Ruby on Rails по-русски]
* [http://live.julik.nl/2005/11/ror-for-starters Ruby и Rails — откуда начать]
* [http://live.julik.nl/2005/11/php-is-so-90s Рельсовые войны]
* [http://prog.labis.ru/blog/archives/1-DolgoZhdannyj_reliz_Rails_1.0.html Долгожданный релиз Rails 1.0]
* [http://wiki.rubyonrails.com/rails/pages/Ruby+on+Rails+%28%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29 Ruby on Rails (русский)]
* [http://ror2ru.elementalcms.org/index.php?n=Main.RailsStartManual Ручная установка и запуск Rails]
* [http://ror2ru.elementalcms.org/index.php?n=Main.RailsStartSqlite Быстрый старт с Sqlite]
* [http://ror2ru.elementalcms.org/index.php?n=Main.RailsParts «Фрагменты» Rails]
* [http://eyrie.blogsome.com/2006/12/21/p37/ 12 самоучителей по Ruby on Rails]
* [http://www.ibm.com/developerworks/ru/library/j-cb05096/index.html?S_TACT=105AGX99&S_CMP=Q4_T_YDX Пересекая границы: В чем секрет Ruby on Rails?]
* [http://kolia.pp.ru/programming/060521_morev_rails/index.html Разработка web-приложений в среде Ruby on Rails]
* [http://alexlebedev.com/blog/we-are-on-rails/ Достоинства и недостатки Ruby on Rails (1.2)]
* [http://www.meshplex.org/wiki/Ruby/Ruby_on_Rails_programming_tutorials Full Ruby on Rails Tutorial]

== Спілкування ==
* [http://rubyclub.com.ua/ Форум присвячений Rails (написаний на RoR)]


{{Ruby}}
{{Прикладні інструментарії}}
{{Прикладні інструментарії}}


[[Категорія:Веб-програмування]]
[[Категорія:Вебпрограмування]]
[[Категорія:Програмні каркаси]]
[[Категорія:Програмні каркаси]]
[[Категорія:CMF]]
[[Категорія:CMF]]
[[Категорія:Ruby]]
[[Категорія:Вільне програмне забезпечення на Ruby]]
[[Категорія:Програмне забезпечення, що використовує ліцензію MIT]]

[[af:Ruby on Rails]]
[[ar:روبي على قضبان]]
[[bg:Ruby on Rails]]
[[ca:Ruby on Rails]]
[[cs:Ruby on Rails]]
[[da:Ruby on Rails]]
[[de:Ruby on Rails]]
[[en:Ruby on Rails]]
[[eo:Ruby on Rails]]
[[es:Ruby on Rails]]
[[eu:Ruby on Rails]]
[[fi:Ruby on Rails]]
[[fr:Ruby on Rails]]
[[gl:Ruby on Rails]]
[[he:Ruby on Rails]]
[[hu:Ruby on Rails]]
[[it:Ruby on Rails]]
[[ja:Ruby on Rails]]
[[ko:루비 온 레일즈]]
[[ms:Ruby on Rails]]
[[nl:Ruby on Rails]]
[[no:Ruby on Rails]]
[[pl:Ruby on Rails]]
[[pt:Ruby on Rails]]
[[ru:Ruby on Rails]]
[[sv:Ruby on Rails]]
[[th:รูบีออนเรลส์]]
[[tr:Ruby on Rails]]
[[zh:Ruby on Rails]]
[[zh-yue:Ruby on Rails]]

Поточна версія на 12:02, 24 липня 2024

Ruby on Rails
Типпрограмний каркас вебзастосунків
АвторDavid Heinemeier Hansson
РозробникRails Core Team
Операційна системакрос-платформовий
Мова програмуванняRuby
Стан розробкиактивний
ЛіцензіяMIT
Репозиторійgithub.com/rails/rails
Вебсайтrubyonrails.org

Ruby on Rails — об'єктно-орієнтований програмний каркас (фреймворк) для створення вебзастосунків, написаний на мові програмування Ruby. Ruby on Rails надає каркас модель-вид-контролер (Model-View-Controller) для вебзастосунків, а також забезпечує їхню інтеграцію з вебсервером і сервером бази даних.

Ruby on Rails був створений Девідом Гайнемаєр Генссоном (англ. David Heinemeier Hansson) на основі його роботи над засобом керування проєктами Basecamp і був випущений в липні 2004 року. Ruby on Rails є відкритим програмним забезпеченням і розповсюджується за ліцензією MIT.

Принципи

[ред. | ред. код]

Ruby on Rails визначає принципи розробки застосунків:

  • Застосунки не повинні визначати власну архітектуру, оскільки вони використовують готовий каркас модель-вид-контролер.
  • Мова Ruby дозволяє використовувати нотацію, що легко читається, для визначення семантики вебзастосунків (таких як відносини між таблицями в базі даних).
  • Ruby on Rails надає механізми повторного використання, що дозволяють мінімізувати дублювання коду у вебзастосунку (принцип Don't Repeat Yourself — не повторюй себе).
  • За замовчуванням використовуються угоди по конфігурації, типові для більшості вебзастосунків (принцип Convention over configuration — угоди над конфігурацією). Явна специфікація конфігурації потрібна тільки в нестандартних випадках.

Архітектура

[ред. | ред. код]

Основними компонентами застосунків Ruby on Rails є модель (model), вид (view) і контролер (controller).

Модель

[ред. | ред. код]

Модель надає решті компонентів програми об'єктно-орієнтоване представлення даних (таких як каталог продуктів або список замовлень). Об'єкти моделі здійснюють завантаження і збереження даних в реляційній базі даних.

Завдяки можливостям динамічної типізації в мові Ruby розробникові досить успадкувати свій клас моделі від базового класу ActiveRecord::Base. Ruby on Rails автоматично пов'язує класи моделі з таблицями в базі даних і створює атрибути об'єктів для відповідних полів таблиці.

Вид створює інтерфейс користувача для відображення отриманих від контролера даних. Вид також передає запити користувача на маніпуляцію даними в контролер (як правило, вид не змінює безпосередньо дані з моделі).

У Ruby on Rails вид описується за допомогою шаблонів RHTML. Вони є файлами HTML з додатковими включеннями фрагментів коду Ruby (Embedded Ruby або ERb). Вивід, згенерований вбудованим кодом Ruby, включається в текст шаблону сторінки HTML, яка після цього повертається користувачеві. Види можуть використовувати фрагменти інших видів і, у свою чергу, бути включеними в шаблон (layout) вищого рівня.

Контролер

[ред. | ред. код]

Контролер — основний компонент, що відповідає за взаємодію з користувачем. Контролер прочитує необхідні дані з моделі і готує їх для відображення, а також зберігає отримані від відображення дані в моделі.

Контролером в Ruby on Rails є клас, успадкований від ActionController::Base. Відкриті методи контролера є так званими діями (actions). Action часто відповідає окремому видові. Наприклад, по запиту користувача admin/list буде викликаний метод list класу AdminController і потім використаний вид list.rhtml.

Інтеграція

[ред. | ред. код]

Ruby on Rails може працювати з Apache, Lighttpd або будь-яким іншим вебсервером, що підтримує FastCGI. Для розробки і зневадження часто використовується вбудований в Ruby вебсервер WEBrick або Mongrel

Як сервер бази даних підтримуються MySQL, Firebird, PostgreSQL, IBM DB2, Oracle і Microsoft SQL Server. Також підтримується вбудована база даних SQLite.

Проєкти написані на RoR

[ред. | ред. код]

Виноски

[ред. | ред. код]

Посилання

[ред. | ред. код]