From Wikipedia, the free encyclopedia
Ruby on Rails é un framework de aplicacións web libre. Pretente incrementar a velocidade e facer máis sinxelo o desenvolvemento de sitios web, e ofrece un framework de código esqueleto (andamiaxe). Normalmente chamado como Rails, ou RoR, Ruby on Rails é un proxecto software libre escrito en Ruby, segundo o paradigma de deseño MVC Modelo-Vista-Controlador. A linguaxe de programación Ruby permite a metaprogramación, do cal Rails fai uso, o que resulta nunha sintaxe que moitos usuarios encontran moi lexible. Rails distribúese a través de RubyGems, que é o formato oficial de paquete e canal de distribución de librerías e aplicacións Ruby.
Ruby on Rails | |
---|---|
![]() | |
Data | 2004 |
Deseñador | Rails Core Team |
Última versión | 3.2.11 |
Sistema operativo | Multiplataforma |
Licenza | Licenza MIT |
Web | rubyonrails.org |
Os principios fundamentais de Ruby on Rails inclúen Convención sobre configuración (CoC) e Non te repitas (DRY).
"Convención sobre configuración" significa que o desenvolvedor só precisa especificar aspectos non convencionais da aplicación. Por exemplo, se hai unha clase Venda no modelo, a táboa correspondente na base de datos é chamado vendas por defecto.
"Non te repitas" refírese á información disposta nun lugar único, e non ambiguo. Por exemplo, ó empregar ActiveRecord, o desenvolvedor non precisa especificar os nomes das columnas da base de datos na definición da clase. No canto, Ruby pode recoller a información dende a base de datos.
Ruby on Rails foi escrito por David Heinemeier Hansson a partir do seu traballo en Basecamp, unha ferramenta de xestión de proxectos por 37signals. Foi liberado ó público por primeira vez en xullo de 2004 Arquivado 25 de febreiro de 2013 en Wayback Machine..
Ruby on Rails lidera a seguinte xeración de frameworks de aplicacións web, con características moi populares que son agora consideradas como estándares, entre os que están scaffolding, mapeamento obxecto-relacional e instalación simple. Outros proxectos, como, Catalyst, Django e TurboGears ségueno.
Do mesmo xeito que moitos frameworks web contemporáneos, Rails utiliza a arquitectura modelo-vista-controlador (Model-View-Controller -MVC-) para organizar a programación de aplicacións.
Rails proporciona "ó comezar" ferramentas que poden construír rapidamente a maioría dos modelos e vistas que se precisan para a base das páxinas web. Inclúe tamén outras ferramentas de axuda que veñen instaladas con Rails, como o servidor web WEBrick e o sistema de construción Rake.
Rails fai un uso significativo de librarías JavaScript Prototype e Script.aculo.us para Ajax e na súa interface de usuario.
Para os servizos web Rails inicialmente soportaba SOAP; pero finalmente foi substituída por servizos web RESTful. A recomendada estrutura de programación baseada en REST cambia drasticamente na versión 1.2.
Ruby on Rails divídese en varios paquetes, chamados Active Record, Active Resource, Action Pack, Active Support e Action Mailer (anteriormente á versión 2.0, Rails tamén incluía o paquete Action Web Service que agora foi substituído por Active Resource). Ademais dos paquetes estándar, os desenvolvedores poden facer plugins para estender as funcionalidades dos paquetes base.
As pezas da arquitectura Modelo Vista Controlador en Ruby on Rails son as seguintes:
Nas aplicacións web orientadas a obxectos sobre bases de datos, o modelo consiste nas clases que representan as táboas da base de datos.
En Ruby on Rails, as clases do modelo son xestionadas por ActiveRecord. Polo xeral, o único que ten que facer o programador é herdar da clase ActiveRecord::Base
, e o programa coñecerá automaticamente que táboa empregar e as columnas que ten.
As definicións das clases tamén detallan as relacións entre clases con sentenzas de mapeamento obxecto-relacional. Por exemplo, se a clase Imagen
ten unha definición has_many :comentarios
, e existe unha instancia de Imagen
chamada a
, entón a.comentarios
devolverá un array con tódolos obxectos Comentario
cuxa columna imagen_id
(na táboa comentarios) sexa igual a a.id
.
As rutinas de validación de datos (p.e. validates_uniqueness_of :checksum
) e as rutinas relacionadas coa actualización (p.e. after_destroy :borrar_archivo
, before_update :actualizar_detalles
) tamén se especifican e implementan na clase do modelo.
O modelo representa:
En MVC, Vista é a lóxica de visualización, ou como se mostran os datos das clases do Controlador. Con frecuencia nas aplicacións web a vista consiste nunha cantidade mínima de código incluído en HTML.
Existen na actualidade moitas maneiras de xestionar as vistas. O método que se emprega en Rails por defecto é empregar Ruby Embebido (arquivos .rhtml), que son basicamente fragmentos de código HTML con algo de código en Ruby, seguindo unha sintaxe similar a JSP. Tamén poden construírse vistas en HTML e XML con Builder ou empregando o sistema de modelos Liquid.
É preciso escribir un pequeno fragmento de código en HTML para cada método do controlador que precisa mostrar información ó usuario. A "maquetaxe" ou distribución dos elementos da páxina descríbense separadamente da acción do controlador e os fragmentos poden invocarse uns a outros.
En MVC, as clases do Controlador responden á interacción do usuario e invocan a lóxica da aplicación, que á súa vez manipula os datos das clases do Modelo e mostra os resultados empregando as Vistas. Nas aplicacións web baseadas en MVC, os métodos do controlador son invocados polo usuario empregando o navegador web.
A introdución do Controlador é manexada polo ActionPack de Rails, que contén a clase ApplicationController
. Unha aplicación Rails simplemente herda desta clase e define as accións necesarias como métodos, que poden ser invocados dende a web, polo xeneral na forma http://aplicacion/exemplo/metodo
, que invoca a ExemploController#metodo
, e presenta os datos empregando o arquivo de modelo /app/views/exemplo/metodo.rhtml
, a non ser que o método redirixa a algún outro lugar.
Rails tamén proporciona ferramentas que pode construír rapidamente a maior parte da lóxica e vistas necesarias para realizar as operacións máis frecuentes.
Ademais, Rails ofrece outros módulos, como Action Mailer (para enviar correo electrónico) e Action Web Service para dar soporte a SOAP e XML-RPC.
Ajax é unha técnica que permite empregar Javascript e XML ou JSON para procesar peticións dun navegador web a un servidor web como procesamento en segundo plano sen cargar outras partes da páxina web adicionais. Rails proporciona diferentes facilidades que fan máis fácil poñer en funcionamento aplicacións Ajax.
Rails é anfitrión tanto do framework Prototype en Javascript (unha serie de ferramentas que proporcionan chamadas Ajax e outra funcionalidade habitual nas tarefas cliente-servidor) como de script.aculo.us, unha libraría en Javascript con melloras na interface de usuario (controis avanzados nos formularios, efectos visuais, arrastrar e soltar).
Para desenvolvemento e probas, empregase o servidor web lixeiro WEBrick, incluído con Ruby. Para o seu uso en produción emprégase Apache ou Lighttpd con FastCGI. Sobre Apache, mod ruby pode mellorar considerablemente o rendemento, aínda que o seu uso non se recomenda porque non é seguro empregar múltiples aplicacións RoR sobre Apache. A mellor alternativa, sen dúbida, é empregar a libraría/servidor web Mongrel cun balanceador de carga coma Pound; deste xeito correndo varias instancias de Mongrel alcánzanse uns niveis de escalabilidade e de carga aceptables.
Dado que a arquitectura Rails favorece o uso de bases de datos, recoméndase usar un SXBD para almacenamento de datos. Rails soporta a libraría SQLite se non é posible empregar unha base de datos. O acceso á base de datos é totalmente abstracto dende o punto de vista do programador, e Rails xestiona os accesos á base de datos automaticamente (aínda que, se se necesita, pódese facer consultas directas en SQL). Rails tenta manter a neutralidade con respecto á base de datos, a portabilidade da aplicación a diferentes sistemas de base de datos e a reutilización de bases de datos preexistentes. Porén, por mor da diferente natureza e prestacións dos SXBDs o framework non pode garantir a compatibilidade completa. Sopórtanse diferentes SXBDs, incluíndo MySQL, PostgreSQL, SQLite, IBM DB2, Oracle e Microsoft SQL Server.
En marzo de 2007 David Heinemeier Hansson rexistrou tres aplicacións relacionadas con Rails no USPTO. Estas aplicacións conteñen a frase "RUBY ON RAILS",[2] a palabra "RAILS"[3] e o logo oficial de Rails.[4] Como consecuencia, no verán de 2007 Hansson denegou a Apress o permiso de empregar o logo de Rails na portada do novo libro escrito por membros autorizados da comunidade. O episodio provocou unha protesta política na comunidade Rails.[5][6] En resposta a estas críticas, Hansson fixo as seguintes declaracións:[5]
Só autoricei o suo promocional de Rails ós produtos en que estea envolto directamente, como libros que foron parte do proceso de desenvolvemento ou para conferencias nas que eu participe.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.