Introducción a rails 3!

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción a rails 3!"

Transcripción

1 Introducción a rails 3 Rails es un framework de desarrollo de aplicaciones web escrito en el lenguaje Ruby. Está diseñado para hacer la programación de aplicaciones web más fácil al hacer suposiciones acerca de lo que necesita cada desarrollador para empezar. Se permite escribir menos código en contraste de muchos otros lenguajes y frameworks. Desarrolladores experimentados de Rails también informan que hace que el desarrollo de aplicaciones web más divertida. Una cosa muy importante al utilizar rails para el desarrollo es que se basa en el principio de Convención sobre configuración, por lo cual es muy importante cumplir con los estándares. Instalación de rails - Mac OS X y Linux: Para estas dos plataformas se recomia el uso de RVM para tener multiples versiones de ruby en un mismo equipo, para esto simplemente utilizamos el comando en terminal: user$ \curl -ssl sudo bash -s stable Para más información, favor de consultar el sitio oficial - Windows: En el caso de Windows se recomia el utilizar RubyInstaller railsinstaller.org/en que es un ejecutable. Creando una aplicación de ejemplo Antes de empezar, debemos revisar si está instalado ruby y rails para poder comenzar, para esto corremos el comando en terminal que nos dará nuestra versión de ruby. $ ruby - v En caso de recibir el mensaje de que no existe ruby, favor de proceder a su instalación. Una vez hecho esto, podemos comenzar. $ gem install rails El primer paso es instalar rails, lo cual se logra con el siguiente comando: Una vez finalizado este proceso procedemos a crear nuestra aplicación. $ rails new blog - d mysql Nota: En caso de no indicarse -d mysql se usará sqlite3 por default y blog es nuestro nombre de proyecto. Nota2: Si se tienen multiples versiones de rails, se puede especificar de la siguiente manera rails _3.2.9_ new myapp.

2 Lo anterior nos creará una estructura como esta: Con lo cual nuestro proyecto estará creado y casi listo para iniciar. A continuación tenemos que modificar nuestro archivo de base de datos, para lo cual abrimos el archivo blog/config/database.yml que se verá algo así. Ahora, sólo nos falta que modifiquemos los valores para que correspondan con los de nuestro sistema.

3 Una vez modificado nuestro archivo de base de datos, procedemos a desde la terminal ingresar a la carpeta de nuestro proyecto y ya podemos iniciarlo con el comando. $ rails server Lo cual iniciará nuestra aplicación en un servidor incluido con rails y nos colocará en el puerto 3000 nuestra web para que probemos. Obviamente nuestra aplicación aún no hace nada, pero por lo menos ya tenemos nuestra página de inicio. Ahora es momento de revisar todas nuestras carpetas y archivos para ver que encontraremos en cada uno. Carpeta/Archivo Propósito app/ bin/ config/ config.ru db/ Contiene los controladores, modelos, vistas, helpers, mailers y assets para nuestra aplicación. La mayoría del trabajo se hace aquí. Contiene los scripts de rails que inician la app y pueden contener otros scripts que se usen para deplorar o correr la app. Configura tu aplicación, ya sea de rutas, bases de datos, etc. Configuración para servidores basados en Rack utilizados para iniciar la aplicación Contiene tu esquema de base de datos, así como las migraciones

4 Carpeta/Archivo Gemfile y Gemfile.lock lib/ log/ public/ Rakefile README.rdoc test/ tmp/ Propósito Estos archivos nos permiten especificar que gemas queremos incluir en nuestra aplicación rails. Aqui se colocan modulos apra la aplicación. Contiene los archivos de log. Esta debe ser la única carpeta visible por el mundo, contiene archivos estáticos y los assets compilados. Localiza y carga las tareas que pueden ser ejecutadas desde la linea de comandos. Las definiciones de tareas son definidas agraves de componentes de Rails (No se debe modificar). Breve documentación sobre la aplicación. Destinada para el uso de pruebas. Contiene archivos temporales como sesiones entre otros. vor/ Todo el código de terceros se include aquí. Bueno, pues ahora el siguen paso es cambiar nuestra pantalla de inicio, para lo cual vamos a crear un nuevo controlador con una acción. Para esto, en nuestra terminal ejecutamos el comando: $ rails generate controller welcome index Con esto rails creará muchos archivos y agregará una ruta al archivo de rutas: create app/controllers/welcome_controller.rb route get 'welcome/index' invoke erb create app/views/welcome create app/views/welcome/index.html.erb invoke test_unit create test/controllers/welcome_controller_test.rb invoke helper create app/helpers/welcome_helper.rb invoke test_unit create test/helpers/welcome_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/welcome.js.coffee invoke scss create app/assets/stylesheets/welcome.css.scss Los que por ahora nos interesan son app/controllers/welcome_controller.rb y app/views/ welcome/index.html.erb que contienen nuestro controlador y nuestra vista respectivamente.

5 Abrimos nuestra vista app/views/welcome/index.html.erb y modifiquemos nuestro código para tener nuestro hello rails. <h1>hello, Rails</h1> Y ahora. Configuramos nuestra página de inicio Para lo cual abrimos nuestro archivo de rutas config/routes.rb. Y veremos algo como esto: Rails.application.routes.draw do get 'welcome/index' # The priority is based upon order of creation: # first created - > highest priority. # # You can have the root of your site routed with "root" # root 'welcome#index' # #... Ahora simplemente agregamos esta linea con la que indicamos cual es nuestra ruta por default: root 'welcome#index' Lo anterior le dice a Rails que relacione el root de la aplicación a la acción index del controlador welcome y así mismo get 'welcome/index' le dice a Rails que relacione welcome/index a la acción index del controlador welcome. Por último nos resta borrar o renombrar el archivo public/index.html ya que Rails toma este por default. Y además tenemos que crear nuestra base de datos de desarrollo, para lo cual basta con ejecutar el comando: rake db:create Una vez echo esto, podemos iniciar de nuevo nuestra aplicación para ver el resultado.

6 Para la siguiente parte, vamos a comenzar a agregar, verdadera funcionalidad. Primero que nada empezaremos agregando un recurso a nuestro archivo de rutas, un recurso es el termino usado para hacer referencia a una colección de objetos similares, como artículos, personas o animales. Sobre los cuales se pueden ejecutar las operaciones CRUD (create, read, update and destroy). Ahora en nuestro archivo de rutas agregamos la siguiente linea: resources :articles Con lo cual se nos crearan algunas URLs, para ver las urls que tenemos, corremos el comando: rake routes Lo cual nos mostrará algo similar a esto: $ rake routes articles GET /articles(.:format) articles#index POST /articles(.:format) articles#create new_article GET /articles/new(.:format) articles#new edit_article GET /articles/:id/edit(.:format) articles#edit article GET /articles/:id(.:format) articles#show PUT /articles/:id(.:format) articles#update DELETE /articles/:id(.:format) articles#destroy welcome_index GET /welcome/index(.:format) welcome#index root / welcome#index Ahora, si intentamos acceder cualquier ruta de nuestro recurso, nos saldrán errores, ya que no existen ni los controladores, ni las acciones y tampoco las vistas necesarias. Pero esto es correcto por las razones antes mencionadas.

7 Ahora, para continuar vamos a crear nuestro controlador para el recurso de articles : $ rails g controller articles Con esto se generará nuestro controlador app/controllers/articles_controller.rb el ciar abrimos para empezar a trabajar y veremos algo así: class ArticlesController < ApplicationController Un controller no es otra cosa que una clase que hereda de ApplicationController, y es aquí donde trabajaremos con nuestros métodos CRUD. Ahora, si refrescamos la página veremos que el error cambia: Indicándonos ahora, que se desconoce la acción, ya que claro, no la hemos creado. Lo siguiente es definir esta acción, para lo cual en nuestro controller simplemente agregamos dentro de la clase: def new Y si de nuevo refrescamos, veremos que el error cambia de nuevo:

8 Básicamente esto nos dice que no se encuentra la vista correspondiente. que para este caso es articles/new, application/new, como podemos ver busca en dos directorios, esto es porque el primero es el del recurso y el segundo es el de la clase padre, es decir ApplicationController. Y formats:[:html] simplemente nos dice que espera un html que es el formato por default aunque puede ser reemplazado por otros como json. Ahora, para reparar esto, vamos a usar el template más simple, que sería app/views/articles/ new.html.erb, hay que notar la importancia de la extensión, ya que la primera extensión es el formato, y la segunda es el handler que será utilizado. Rails intenta encontrar un template llamado articles/new dentro de app/views para la aplicación. El formato para este template sólo puede ser html y el handler debe ser uno de erg, builder o coffee. Como queremos crear una nueva forma HTML, usaremos el lenguaje ERB. Por lo cual el archivo debe ser nombrado app/views/articles/new.html.erb y necesita estar en dicho directorio. Y simplemente agregamos esta linea y refrescamos. <h1>new Article</h1> El siguiente paso es crear nuestra primera forma, para lo cual utilizaremos un form builder que nos proporciona rails mediante un método helper llamado form_for. <%= form_for :article do f %> <%= f.label :title %><br> <%= f.text_field :title %> <%= f.label :text %><br> <%= f.text_area :text %> <%= f.submit %> <% %>

9 Si refrescamos la página veremos que ahora tenemos un formulario. Y aquí tenemos nuestro html. <form method="post" action="/articles/new" accept- charset="utf- 8"><div style="margin:0;padding: 0;display:inline"><input type="hidden" value=" " name="utf8"><input type="hidden" value="repzfbeklbiwionftznukpvfghtvd/fvxxun+ueecc4=" name="authenticity_token"></div> <label for="article_title">title</label><br> <input type="text" size="30" name="article[title]" id="article_title"> <label for="article_text">text</label><br> <textarea rows="20" name="article[text]" id="article_text" cols="40"></textarea> <input type="submit" value="save Article" name="commit"> </form> Cuando llamamos form_for, le pasamos un objeto identificador para la forma, en este caos el símbolo :article. Lo cual le dice al form_for para qué es este formulario. Dentro del bloque para este método, el FormBuilder representado por f is utilizado para construir dos labels y dos campos de texto, así como un botón de submit. Sin embargo como vemos en el HTML la url de acción no es la correcta según el estándar REST ya que debería hacer referencia a /articles utilizando el método POST. Para solucionar esto, simplemente hacemos este cambio: <%= form_for :article, url: articles_path do f %>

10 Esta URL nos la da rake routes como lo vimos anteriormente: $ rake routes articles GET /articles(.:format) articles#index POST /articles(.:format) articles#create new_article GET /articles/new(.:format) articles#new edit_article GET /articles/:id/edit(.:format) articles#edit article GET /articles/:id(.:format) articles#show PUT /articles/:id(.:format) articles#update DELETE /articles/:id(.:format) articles#destroy welcome_index GET /welcome/index(.:format) welcome#index root / welcome#index Ahora vamos a crear nuestra acción que responderá a esta URL que es el create. def create rer json: params[:article].inspect Para evitar el error de missing template, agregamos la segunda linea, con lo cual vamos a ver un json con los parámetros enviados al darle click al botón submit. {"title"=>"qwqwer", text"=>"qwerqwer"} Para continuar vamos a crear un modelo para los artículos. Creando el model Article Los models en Rails utilizan nombres singulares que corresponden a los nombres de las tablas en la base de datos. Rails nos proporciona un generador para crear dichos modelos que es la manera más común de hacerlo. Para crear un nuevo modelo corremos en terminal: $ rails generate model Article title:string text:text Con esto, Rails crea varios archivos, de los cuales sólo nos interesan app/models/article.rb y db/ migrate/ _create_articles.rb, el nombre del segundo archivo puede ser un poco diferente. El segundo archivo es responsable de crear la estructura en la base de datos. class CreateArticles < ActiveRecord::Migration def change create_table :articles do t t.string :title t.text :text Si abrimos nuestra migración db/migrate/ _create_articles.rb veremos algo así: t.timestamps

11 Lo cual crea un método llamado change el cual se ejecutará al correr esta migración, que como podemos observar va a crearnos la tabla articles con los campos id(por default), titulo, texto y timestamps para fechas de creación y modificación. Ahora ejecutamos el comando: $ rake db:migrate Que nos regresará un mensaje. == CreateArticles: migrating ================================================== - - create_table(:articles) - > s == CreateArticles: migrated (0.0020s) ========================================= Nota: Por default esto afecta a la base de datos de desarrollo, si queremos que tome efecto en producción, debemos indicarlo rake db:migrate RAILS_ENV=production. Una vez que ya tenemos nuestra tabla creada, procedamos guardar el artículo. Abrimos app/controllers/articles_controller.rb y modificamos nuestro método create. def = Article.new(params[:article]) respond_to do format format.html { notice: 'Changes Saved.' } format.json { rer status: :created, } else format.html { rer action: "new" } format.json { rer status: :unprocessable_entity }

12 Si refrescamos la página y damos click al botón del formulario de nuestro artículo veremos que se guarda pero nos muestra el error: Esto ya debemos reconocerlo y se debe a que no existe nuestro método ni nuestra vista, así que vayamos a resolver ambos. Primero editamos nuestro controller para agregar la acción show : def = Article.find(params[:id]) respond_to do format format.html # show.html.erb format.json { rer } Y creamos nuestro archivo de vista app/views/articles/show.html.erb con el siguiente contenido: <strong>title:</strong> %> <strong>text:</strong> %> Con esto ya podemos actualizar nuestra página para ver los resultados.

13 Cabe mencionar como nota, que el respond_to nos permite responder diferente depio del formato que solicitemos ya que si por ejemplo al final de la URL agregamos un.json veremos lo siguiente: Creando el index Que como podemos ver es un objeto en dicho formato. Como normalmente sucede, necesitaremos un listado de nuestros artículos, para esto utilizamos un index, así que a crearlo. Recordemos que la ruta es: articles GET /articles(.:format) articles#index Por lo tanto vamos a añadir el método index a nuestro controller: def = Article.all respond_to do format format.html # index.html.erb format.json { rer } Con esto le decimos a nuestro modelo que nos traiga todos los artículos que encuentre en nuestra base de datos. Ahora creamos nuestro app/views/articles/index.html.erb para mostrar el listado: <h1>listing articles</h1> <table> <tr> <th>title</th> <th>text</th> </tr> do article %> <tr> <td><%= article.title %></td> <td><%= article.text %></td> </tr> <% %> </table>

14 Con lo anterior si vamos a veremos un listado de nuestros artículos. Obviamente no vamos a estar cambiando la URL manualmente, así que Agreguemos unos enlaces Abramos nuestra vista por default app/views/welcome/index.html.erb y agreguemos el primer enlace: <h1>hello, Rails</h1> <%= link_to 'My Blog', controller: 'articles' %> El método link_to es un helper que nos ayuda a generar enlaces. Si queremos probarlo podemos hacerlo y damos click al enlace generado. <%= link_to 'New article', new_article_path %> Ahora modifiquemos app/views/articles/index.html.erb para agregar lo siguiente: Y actualizamos nuestra tabla. do article %> <tr> <td><%= article.title %></td> <td><%= article.text %></td> <td><%= link_to 'Show', article_path(article) %></td> <td><%= link_to 'Edit', edit_article_path(article) %></td> </tr> <% %> Y por su puesto modificamos nuestro app/views/articles/new.html.erb y al final del documento agregamos el link, que nos quedará similar a: <%= form_for :article, url: articles_path do f %>... <% %> <%= link_to 'Back', articles_path %>

15 Y por último app/views/articles/show.html <%= link_to 'Back', articles_path %> Ahora podemos probar todos nuestros enlaces. Y pasemos a lo siguiente. Agregar validaciones Antes de esto, modifiquemos nuestro controlador y agreguemos la siguiente linea en el método create = Article.new Más adelante veremos para qué es esto. Para hacer las validaciones utilizaremos nuestro modelo app/models/article.rb. Y agregaremos: class Article < ActiveRecord::Base validates :title, presence: true, length: { minimum: 5 } Con esto nos aseguramos de que exista un título y tenga una longitud mínima de 5. Esta validaciones corresponden a la clase padre ActiveRecord para más detalle guides.rubyonrails.org/active_record_validations.html Si ahora intentamos guardar un artículo que no cumpla estas validaciones veremos que no se guarda, mas sin embargo no nos da ningún mensaje. Así que editemos nuestro archivo app/views/articles/new.html.erb": <%= form_for :article, url: articles_path do f %> <% %> <div id="error_explanation"> <h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2> <ul> do msg %> <li><%= msg %></li> <% %> </ul> </div> <% %> <%= f.label :title %><br> <%= f.text_field :title %>

16 <%= f.label :text %><br> <%= f.text_area :text %> <%= f.submit %> <% %> <%= link_to 'Back', articles_path %> El código nuevo lo que hace es básicamente preguntar si existen y en caso de que sea así se muestra una lista de errores pluralize es un helper de rails que toma un número una string como parámetros. En caso que el número se mayo que uno, el string es pluralizado de manera automática. Es importante notar que la modificación al método create fue para evitar que sea nulo. Ahora, si volvemos a enviar nuestro formulario sin cumplir las validaciones nos mostrará algunos errores. Ahora el update Lo siguiente es programar el actualizar la información de nuestros artículos, para lo cual necesitaremos nuestro método edit en nuestro controlador: def = Article.find(params[:id]) Y un nuevo archivo de vista app/views/articles/edit.html.erb :

17 <h1>editing article</h1> <%= form_for :article, url: method: :put do f %> <% %> <div id="error_explanation"> <h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2> <ul> do msg %> <li><%= msg %></li> <% %> </ul> </div> <% %> <%= f.label :title %><br> <%= f.text_field :title %> <%= f.label :text %><br> <%= f.text_area :text %> <%= f.submit %> <% %> <%= link_to 'Back', articles_path %> En esta ocasión hemos apuntado el formulario a la acción update mediante el parámetro method: :put, el cual no existe, pero lo haremos en breve. def = if Article.find(params[:id]) respond_to do format

18 @article.update_attributes(params[:article]) format.html { notice: 'Changes Saved.' } format.json { head :no_content } else format.html { rer action: "edit" } format.json { rer status: :unprocessable_entity } Con esto como podemos ver, en caso de que se apliquen los cambios seremos re-dirigidos a la URL del artículo que hemos editado. Ya podemos revisar esta funcionalidad. Eliminando código duplicado Como podemos ver, las formas de nuestra acción new y edit, son prácticamente iguales, salvo por la url, así que vamos a remediar esto utilizando algo llamado partials. Para esto creamos el archivo app/views/articles/_form.html.erb y colocamos el siguiente código: <%= do f %> <% %> <div id="error_explanation"> <h2><%= pluralize(@article.errors.count, "error") %> prohibited this article from being saved:</h2> <ul> do msg %> <li><%= msg %></li> <% %> </ul> </div> <% %> <%= f.label :title %><br> <%= f.text_field :title %> <%= f.label :text %><br> <%= f.text_area :text %> <%= f.submit %>

19 <% %> Como podemos ver, simplemente se ha omitido la URL destino, ya que rails es suficientemente inteligente para detectar que URL utilizar para el recurso correspondiente. Ahora editamos nuestra vista de new: <h1>new article</h1> <%= rer 'form' %> <%= link_to 'Back', articles_path %> Y la de edit: <h1>edit article</h1> <%= rer 'form' %> <%= link_to 'Back', articles_path %> Con esto si refrescamos ambas URLs, veremos que el comportamiento no se ha visto afectado. Borrando elementos En nuestro controller: def = respond_to do format format.html { redirect_to articles_url } format.json { head :no_content } Y en nuestro index agregamos a la tabla después de los enlaces de show y edit: <td><%= link_to 'Destroy', article, method: :delete, data: { confirm: 'Are you sure?' } %></td> Con esto si refrescamos la vista, veremos que ahora, podemos eliminar artículos, con lo cual terminamos nuestras operaciones CRUD. El segundo modelo Como vemos ese es un comportamiento muy simple, así que vamos a generar un segundo modelos para que nuestros artículos puedan tener comentarios.

20 Primero generamos el modelo: $ rails generate model Comment commenter:string body:text article:references Si revisamos nuestro modelo veremos algo así: class Comment < ActiveRecord::Base belongs_to :article attr_accessible :body, :commenter Como vemos, a demás de los campos body y commenter, tenemos la linea belongs_to, que nos hace referencia a la asociación entre los modelos para ActiveRecord. De igual manera si observamos la migración, veremos esto: class CreateComments < ActiveRecord::Migration def change create_table :comments do t t.string :commenter t.text :body t.references :article t.timestamps add_index :comments, :article_id Lo cual es bastante entible. $ rake db:migrate Ahora ejecutamos la migración. Y por último agregamos la asociación en nuestro app/models/article.rb : class Article < ActiveRecord::Base has_many :comments attr_accessible :text, :title validates :title, presence: true, length: { minimum: 5 } Con lo anterior, podemos utilizar esta asociación con simplemente

21 Ahora actualizamos nuestro archivo de rutas: resources :articles do resources :comments Lo siguiente es generar un controlador: $ rails generate controller Comments En nuestro controlador sólo tremos dos acciones, una para crear comentarios y otra para eliminarlos. Pero primero, actualicemos la vista app/views/articles/show.html.erb para permitir a los visitantes agregar comentarios y listar los que ya existan. <strong>title:</strong> %> <strong>text:</strong> %> <h2>comments</h2> do comment %> <strong>commenter:</strong> <%= comment.commenter %> <strong>comment:</strong> <%= comment.body %> <% %> <h2>add a comment:</h2> <%= do f %> <%= f.label :commenter %><br> <%= f.text_field :commenter %> <%= f.label :body %><br> <%= f.text_area :body %>

22 <%= f.submit %> <% %> <%= link_to 'Back', articles_path %> <%= link_to 'Edit', %> Y agregamos nuestro create en el controller app/controllers/comments_controller.rb : def = redirect_to article_path(@article) Con estos cambios, podemos ya agregar comentarios a nuestros artículos. todo esto está muy bien, pero nuestro app/views/articles/show.html.erb está creció mucho, así que, lo vamos a limpiar utilizando partials. Vamos a crear app/views/comments/_comment.html.erb el cual nos servirá para listar los comentarios: <strong>commenter:</strong> <%= comment.commenter %> <strong>comment:</strong> <%= comment.body %>

23 Y actualizamos nuestro app/views/articles/show.html.erb para que quede algo así: <strong>title:</strong> %> <strong>text:</strong> %> <h2>comments</h2> <%= %> <h2>add a comment:</h2> <%= do f %> <%= f.label :commenter %><br> <%= f.text_field :commenter %> <%= f.label :body %><br> <%= f.text_area :body %> <%= f.submit %> <% %> <%= link_to 'Back', articles_path %> <%= link_to 'Edit', edit_article_path(@article) %> Listo, si refrescamos veremos que todo sigue funcionando igual, esto es ya que el método rer itera sobre la asignado cada comentario a una variable local en nuestro partial. Pero aún no terminamos, así que vamos a mover nuestro formulario. Creamos app/views/comments/_form.html.erb con el siguiente contenido: <%= do f %> <%= f.label :commenter %><br> <%= f.text_field :commenter %> <%= f.label :body %><br> <%= f.text_area :body %>

24 <%= f.submit %> <% %> <strong>title:</strong> %> Y nuestro app/views/articles/show.html.erb quedaría de la siguiente forma: <strong>text:</strong> %> <h2>comments</h2> <%= %> <h2>add a comment:</h2> <%= rer "comments/form" %> <%= link_to 'Back', articles_path %> <%= link_to 'Edit', edit_article_path(@article) %> Si de nuevo refrescamos nuestra página, veremos que todo funciona igual, y tenemos un código mucho más limpio y legible. Borrando comentarios Debes en cuando alguien publica un comentario inapropiado o spam que necesita ser eliminado, para esto vamos a actualizar nuestro partial app/views/comments/_comment.html.erb y agregamos dicha opción: <strong>commenter:</strong> <%= comment.commenter %> <strong>comment:</strong> <%= comment.body %> <%= link_to 'Destroy Comment', [comment.article, comment], method: :delete, data: { confirm: 'Are you sure?' } %>

25 Este link, nos generará un enlace a la URL con el método REST DELETE, así que vamos a actualizar nuestro controller para que contenga este método: class CommentsController < ApplicationController def = redirect_to article_path(@article) def = = redirect_to article_path(@article) Con estos cambios, ya podemos borrar nuestros comentarios. Borrando objetos asociados Si bien ya podemos borrar artículos y comentarios, actualmente cuando se elimina un artículo no se eliminan los comentarios asociados al mismo, afortunadamente Rails nos va a facilitar las cosas, así que simplemente vamos a actualizar app/models/article.rb : class Article < ActiveRecord::Base has_many :comments, depent: :destroy attr_accessible :text, :title validates :title, presence: true, length: { minimum: 5 } Y listo, con esto, al borrar nuestros artículos, automáticamente se eliminarán los comentarios asociados al mismo. Seguridad Rails nos provee una autenticación MUY básica que vamos a utilizar para que sólo los que tengan las credenciales necesarias puedan eliminar comentarios no deseados, para esto vamos a utilizar un autenticación HTTP simple que funciona bien para este caso. Vamos a editar nuestro app/controllers/comments_controller.rb : class CommentsController < ApplicationController http_basic_authenticate_with name: "master", password: "secret", only: :destroy

26 Con esto, al querer eliminar un comentario, vamos a ver que nos pide una autenticación. Y listo, tenemos un pequeño sistema de blog. Agregando estilos Como podemos ver, el sitio está muy plano, así que vamos a agregar un poco de estilo. Abrimos nuestro app/assets/stylesheets/application.css que es nuestro archivo principal de estilos, y aquí, vamos a escribir un pequeño css: body { background- color: #FFFFFF; color: #333333; font- family: "Helvetica Neue",Helvetica,Arial,sans- serif; font- size: 14px; line- height: ; } body { margin: auto; width: 970px; } table{ width: 100%; text- align: left; } td{ border- top: 1px solid #DDDDDD; }

27 Con estos pequeños cambios, podemos tener un sitio un poco más presentable. Un poco de javascript Bueno, la mayoría de sitios utilizan js para alguna funcionalidad, si nosotros queremos hacer lo mismo, simplemente podemos hacerlo, para esto editamos nuestro app/assets/javascripts/ application.js donde crearemos un reloj : function updateclock ( ) { var currenttime = new Date ( ); var currenthours = currenttime.gethours ( ); var currentminutes = currenttime.getminutes ( ); var currentseconds = currenttime.getseconds ( ); // Pad the minutes and seconds with leading zeros, if required currentminutes = ( currentminutes < 10? "0" : "" ) + currentminutes; currentseconds = ( currentseconds < 10? "0" : "" ) + currentseconds; // Choose either "AM" or "PM" as appropriate var timeofday = ( currenthours < 12 )? "AM" : "PM"; // Convert the hours component to 12- hour format if needed currenthours = ( currenthours > 12 )? currenthours - 12 : currenthours; // Convert an hours component of "0" to "12" currenthours = ( currenthours == 0 )? 12 : currenthours; // Compose the string for display var currenttimestring = currenthours + ":" + currentminutes + ":" + currentseconds + " " + timeofday; // Update the time display document.getelementbyid("clock").firstchild.nodevalue = currenttimestring; } Lo siguiente es editar nuestro layout general app/views/layouts/application.html.erb : <DOCTYPE html> <html> <head> <title>blog</title> <%= stylesheet_link_tag "application", :media => "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %> </head> <body onload="updateclock(); setinterval('updateclock()', 1000 )"> <span id="clock"> </span> <%= yield %> </body> </html>

28 Si ahora actualizamos nuestro blog, tremos un pequeño reloj que nos dará la hora en la página. Con lo cual damos por terminado este tutorial.

Hello, Thanks for signing up for OpenShift! Getting started is easy.

Hello, Thanks for signing up for OpenShift! Getting started is easy. Proyecto: Montar Aplicación de Ruby Rails sobre Openshift. Lo primero que tenemos que hace es visitar la pagina de openshift : https://openshift.redhat.com/app/ ahí le damos a la opción de Sign up -It,s

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

Tutorial: Primeros Pasos con Subversion

Tutorial: Primeros Pasos con Subversion Tutorial: Primeros Pasos con Subversion Introducción Subversion es un sistema de control de versiones open source. Corre en distintos sistemas operativos y su principal interfaz con el usuario es a través

Más detalles

Manual CMS Mobincube

Manual CMS Mobincube Manual CMS Mobincube CMS Mobincube Qué es? El CMS (Sistema de Gestión de Contenidos) es un completo website que permite la creación y actualización de contenido remoto. De esta forma, una vez creada una

Más detalles

Sesión 20. MVC en ruby on rails. Luisa Fernanda Rincón Pérez 2015-1

Sesión 20. MVC en ruby on rails. Luisa Fernanda Rincón Pérez 2015-1 Sesión 20. MVC en ruby on rails Luisa Fernanda Rincón Pérez 2015-1 Cómo aplica Ruby on rails MVC? MODELO en Ruby on rails Cómo aplica Ruby on rails MVC? Modelo Representan tablas de la base de datos Las

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos

Más detalles

Instalación del Admin CFDI

Instalación del Admin CFDI Instalación del Admin CFDI Importante!!!Antes de comenzar verifique los requerimientos de equipo esto podrá verlo en la guía 517 en nuestro portal www.control2000.com.mx en el apartado de soporte, ahí

Más detalles

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.

Programa diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L. Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.

Más detalles

Cómo usar Subversion. con Windows XP/2000/2003.

Cómo usar Subversion. con Windows XP/2000/2003. con Windows XP/2000/2003. Creado por: Fecha de creación: Domingo, 04 de Septiembre de 2005 Revisión: 1 Última modificación: Sábado, 10 de Septiembre de 2005 Índice Cómo usar Subversion... 1 Índice... 2

Más detalles

En la siguiente imagen se muestra la pantalla principal del portafolio de un usuario que será utilizado para explicar cada aspecto del mismo.

En la siguiente imagen se muestra la pantalla principal del portafolio de un usuario que será utilizado para explicar cada aspecto del mismo. Manual Portafolio El portafolio digital provee a los usuarios de herramientas para crear y mantener su propio portafolio digital en su proceso de formación en moodle en el cual podrán enviar sus trabajos,

Más detalles

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo INDICE Cómo crear una cuenta en ARQA? 4 Cómo tener un grupo en ARQA? 5 Secciones y funcionalidades de los grupos 6 Muro del Grupo 6 Compartir Textos 8 Compartir Imágenes 9 Compartir videos 10 Compartir

Más detalles

Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web.

Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web. ALTA EN DROPBOX Un pequeñísimo tutorial para explicar cómo darse de alta al MEJOR SISTEMA de compartición, backup... en la web. DROPBOX EN LA RED Nos vamos a cualquiera de los navegadores que tengamos

Más detalles

Manual hosting acens

Manual hosting acens Manual hosting acens Contenido Acceso al panel de control de cliente... 3 Asociar un dominio a mi Hosting... 5 Acceso al panel de administración del hosting... 7 INICIO - Visión general del estado de nuestro

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn

MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn Tegucigalpa M. D. C., Junio de 2009 Que es un CMS Un sistema de administración de contenido (CMS por sus siglas en ingles) es un programa para organizar

Más detalles

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL

Race Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL GUIA RACE MANAGER Eventronic, SL DESCRIPCIÓN DEL PROGRAMA El Race Manager es un programa que se creó para facilitar el trabajo de la dirección de carrera de un evento durante y después de una carrera.

Más detalles

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. 1 de 18 Inicio Qué es un foro En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. En el campus virtual, el foro es una herramienta

Más detalles

Quiz 11: Crear preguntas. Juan Quemada, DIT - UPM

Quiz 11: Crear preguntas. Juan Quemada, DIT - UPM Quiz 11: Crear preguntas Juan Quemada, DIT - UPM 1 Quiz 10: Crear preguntas Objetivo: Introducir en la aplicación Quiz un formulario que permita crear preguntas nuevas y añadirlas a la base de datos. Paso

Más detalles

Manual de configuración del correo electrónico Netkiamail en distintos dispositivos

Manual de configuración del correo electrónico Netkiamail en distintos dispositivos Manual de configuración del correo electrónico Netkiamail en distintos dispositivos 1. - INTRODUCCION En este manual aprenderá a configurar una cuenta de correo electrónico para clientes de correo de equipos:

Más detalles

Manual Sistema de Afiliados Lomas Travel

Manual Sistema de Afiliados Lomas Travel Manual Sistema de Afiliados Lomas Travel Contenido Registro de Afiliados... 3 Administración de su cuenta... 7 Ingresar... 7 Uso del Administrador... 8 Configuración de Plantilla... 9 1.-Opción de subir

Más detalles

Introducción... 2. Delicious... 2. Algunas características:... 2. Sitio para acceder a esta herramienta... 2. Qué es Delicious?...

Introducción... 2. Delicious... 2. Algunas características:... 2. Sitio para acceder a esta herramienta... 2. Qué es Delicious?... Delicious Índice Introducción... 2 Delicious... 2 Algunas características:... 2 Sitio para acceder a esta herramienta... 2 Qué es Delicious?... 2 Tutorial Delicious... 3 Cómo guardar favoritos... 5 Otros

Más detalles

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula: 2010-2946.

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula: 2010-2946. Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez Matrícula: 2010-2946 How to How to: Web Server (Apache)!!! Servidor Web El servidor HTTP Apache es

Más detalles

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS UNIVERSIDAD DE MEDELLÍN MANUAL DE USUARIO GESTOR DE CONTENIDOS NUEVO PORTAL WEB TABLA DE CONTENIDO Tabla de Contenido 2 Consideraciones Iniciales 3 Ingreso al Sistema 4 Opciones de Gestor de contenidos

Más detalles

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez Instituto Tecnológico de Las América Materia Sistemas operativos III Temas Servidor Web Apache Facilitador José Doñe Sustentante Robín Bienvenido Disla Ramirez Matricula 2011-2505 Grupo 1 Servidor Web

Más detalles

A continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor:

A continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor: FORMULARIOS BAJO HTML INTRODUCCION A FORMULARIOS Un formulario permite que el visitante al sitio cargue datos y sean enviados al servidor. Es el medio ideal para registrar comentarios del visitante sobre

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com La puesta en marcha de WordPress es muy sencilla,

Más detalles

Sitios remotos. Configurar un Sitio Remoto

Sitios remotos. Configurar un Sitio Remoto Sitios remotos Definir un sitio remoto significa establecer una configuración de modo que Dreamweaver sea capaz de comunicarse directamente con un servidor en Internet (por eso se llama remoto) y así poder

Más detalles

Optimizar base de datos WordPress

Optimizar base de datos WordPress Optimizar base de datos WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com WordPress se ha convertido en uno de los CMS más utilizados en todo el mundo. Su robustez,

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

Aquí tenemos que seleccionar el lenguaje que queremos usar mediante la instalación.

Aquí tenemos que seleccionar el lenguaje que queremos usar mediante la instalación. Instalación de Elastix Seleccionando el lenguaje Aquí tenemos que seleccionar el lenguaje que queremos usar mediante la instalación. Selección del idioma del teclado Seleccionamos el idioma que queramos

Más detalles

Instalación de Tomcat7 en Ubuntu

Instalación de Tomcat7 en Ubuntu 2. Instala el servidor web java TomCat en Windows y Linux. Documenta los módulos/servicios necesarios. Instala el CMS Java Liferay. Documenta el proceso. Instalación de Tomcat7 en Ubuntu Comenzamos instalando

Más detalles

UNIVERSIDAD AUTÓNOMA DE SINALOA FACULTAD DE INGENIERÍA MOCHIS LIC. EN INGENIERÍA DE SOFTWARE MATERIA: REDES Y COMUNICACIÓN DE DATOS GRUPO: 401

UNIVERSIDAD AUTÓNOMA DE SINALOA FACULTAD DE INGENIERÍA MOCHIS LIC. EN INGENIERÍA DE SOFTWARE MATERIA: REDES Y COMUNICACIÓN DE DATOS GRUPO: 401 UNIVERSIDAD AUTÓNOMA DE SINALOA FACULTAD DE INGENIERÍA MOCHIS LIC. EN INGENIERÍA DE SOFTWARE MATERIA: REDES Y COMUNICACIÓN DE DATOS GRUPO: 401 PROFESOR: CARLOS ALARCÓN ALUMNO: SÁNCHEZ CASTILLO LUIS ÁNGEL

Más detalles

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows Lo primero que hay que tener en cuenta para poder hacer nuestro primer programa en C++ es que necesitamos ciertas herramientas

Más detalles

Guía de uso del Portal de Soporte Readsoft

Guía de uso del Portal de Soporte Readsoft Guía de uso del Portal de Soporte Readsoft SUMMARY: Este documento describe como los clientes pueden usar el Portal de Soporte Readsoft para ingresar y manejar sus casos de soporte. Este portal permite

Más detalles

MANUAL DE. manual de Joomla JOOMLA

MANUAL DE. manual de Joomla JOOMLA MANUAL DE manual de Joomla JOOMLA Tabla de contenido 1. Instalación de Joomla y características... 2 2. Configuración del sitio web... 3 3. Gestión de usuario... 8 4. Gestión de artículos... 11 5. Otros

Más detalles

Crear la base de datos antes de la instalación de Wordpress.

Crear la base de datos antes de la instalación de Wordpress. Introducción En este tutorial básico sobre instalar Wordpress en tu propio hosting mediante un panel de control cpanel y aprenderás como personalizar las bases de datos MySQL que utiliza Wordpress. Para

Más detalles

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian Guía de Instalación Página 1 Índice ESCUDO MOVISTAR.... 3 1. INSTALACIÓN DEL SERVICIO ESCUDO MOVISTAR... 3 1.1. VERSIONES SOPORTADAS... 3

Más detalles

Conceptos Generales en Joomla 1.7.2.

Conceptos Generales en Joomla 1.7.2. 1.- Tipos de usuarios en Joomla! JOOMLA 1.7 USUARIOS. Los usuarios de sitios web de Joomla! pueden dividirse en dos categorías principales: Invitados. Usuarios registrados. Los Invitados son sencillamente

Más detalles

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS

MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS MANUAL PARA GESTIÓN DE INCIDENCIAS INFORMÁTICAS En este manual aprenderemos a introducir un Ticket de Soporte (Incidencia Informática) y ver todo el proceso hasta que se resuelve. Para poder escribir Tickets

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

Introducción a los sitios de SharePoint en Office 365

Introducción a los sitios de SharePoint en Office 365 Introducción a los sitios de SharePoint en Office 365 Universidad Central del Este Contenido 1. QUÉ ES UN SITIO SHAREPOINT?... 3 2. CÓMO INGRESAR AL ÁREA DE SITIOS?... 3 3. DESCRIPCIÓN GENERAL DEL ÁREA

Más detalles

Escribiendo el HTML. Un formulario se declara entre estos dos tags:

Escribiendo el HTML. Un formulario se declara entre estos dos tags: Formularios Un formulario HTML sirve como principal punto de interacción con el usuario: mediante ellas, podemos hacer posible la interacción de nuestra página Web para con el usuario que visita nuestro

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2 Manual de software Dynamic Cloud 10/2014 MS-Dynamic_Cloud v1.2 ÍNDICE GENERAL 1. INTRODUCCIÓN... 2 1.1 Configuración mínima del PC... 2 2. INSTALAR DYNAMIC CLOUD... 3 2.1 Ejecutar Dynamic Cloud por primera

Más detalles

12 Minería de Datos Reglas de asociación.

12 Minería de Datos Reglas de asociación. Objetivos: 12 Minería de Datos Reglas de asociación. Genera reportes a partir de técnicas de Data Mining. Utiliza software de Data Mining. Recursos: Guías prácticas. Datos ejemplo. http://rapidminer.com

Más detalles

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server 5.2.- Configuración de un Servidor DHCP en Windows 2003 Server En este apartado vamos a configurar el servidor DHCP de "Windows 2003 Server", instalado en el apartado anterior. Lo primero que hemos de

Más detalles

Configuración de Samba para compartir Archivos

Configuración de Samba para compartir Archivos Configuración de Samba para compartir Archivos Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para

Más detalles

CASO PRÁCTICO. CASOS PRÁCTICOS Internet (CP15 y CP16)

CASO PRÁCTICO. CASOS PRÁCTICOS Internet (CP15 y CP16) CASO PRÁCTICO CASOS PRÁCTICOS Internet (CP15 y CP16) Índice Internet CP15: Subir a Internet... 1 CP16: Publicar en blog... 7 Internet Una vez que tenemos un montaje audio realizado, ya tenemos una nueva

Más detalles

DOCENTES FORMADORES UGEL 03 PRIMARIA

DOCENTES FORMADORES UGEL 03 PRIMARIA DOCENTES FORMADORES UGEL 03 PRIMARIA 1. Recursos y Aplicaciones del Servidor La página de inicio del servidor (http://escuela) contiene los enlaces a las aplicaciones instaladas en el servidor, un enlace

Más detalles

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009) JOOMLA! ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009) Es necesario comentar que este manual ha sido diseñado en su mayor parte por comunidadjoomla.org. Este manual es una

Más detalles

10. El entorno de publicación web (Publiweb)

10. El entorno de publicación web (Publiweb) 10. El entorno de publicación web (Publiweb) 10.1. Introducción El entorno de publicación Web es una herramienta que permite la gestión de nuestras páginas Web de una forma visual. Algunos ejemplos de

Más detalles

La única regla que debe de tener presente siempre, es que cada etiqueta que abra <etiqueta> debe de cerrarla en el mismo orden < /etiqueta cerrada>.

La única regla que debe de tener presente siempre, es que cada etiqueta que abra <etiqueta> debe de cerrarla en el mismo orden < /etiqueta cerrada>. Antes de comenzar, si algo no está en este manual, utilice google para averiguarlo y acostúmbrese a ello ya que será la mejor herramienta que pueda encontrar. La estructura básica de toda página web es:

Más detalles

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones: CARACTERISTICAS DEL SISTEMA PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones: Sólo Servidor: Una sola computadora con el sistema instalado en modo Administrador. Pueden

Más detalles

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com)

INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com) INSTALACIÓN DE SIESTTA 2.0 EN UN HOSTING (Ejemplo para Guebs.com) A modo de post, vamos a complementar la documentación con una guía visual a través de la cual conseguiremos instalar SIESTTA 2.0 en un

Más detalles

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento Qué es AT-Encrypt nos permitirá dotar de contraseña a cualquier documento o carpeta. Este documento o carpeta sólo será legible por aquel que conozca la contraseña El funcionamiento del cifrado (o encriptación)

Más detalles

Guía nuevo panel de clientes Hostalia

Guía nuevo panel de clientes Hostalia Guía nuevo panel de clientes Hostalia Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com 1. Estructura del panel de administración El panel de control presenta un diseño

Más detalles

3. Número inicial y número final de mensajes mostrados en la página actual.

3. Número inicial y número final de mensajes mostrados en la página actual. Sistema WEBmail El sistema WEBmail permite el acceso rápido y sencillo a su buzón de correo utilizando un navegador de páginas Web. Normalmente es usado como complemento al lector de correo tradicional,

Más detalles

Tutorial: Instalación de Eclipse para programar Android en Windows

Tutorial: Instalación de Eclipse para programar Android en Windows Tutorial: Instalación de Eclipse para programar Android en Windows En este tutorial vamos a aprender todo lo necesario para dejar nuestra computadora lista para programar en Java para Android, por medio

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

TEMA 9 CREACIÓN DE PÁGINAS WEB

TEMA 9 CREACIÓN DE PÁGINAS WEB TEMA 9 CREACIÓN DE PÁGINAS WEB OBJETIVOS Conocer las páginas web y sus elementos. Insertar tablas, capas, enlaces en las páginas web. Crear páginas web con NVU. Crear un sitio web. Configurar un sitio

Más detalles

DOMINIO CON IP DINÁMICA

DOMINIO CON IP DINÁMICA DOMINIO CON IP DINÁMICA El problema que encontramos cuando queremos que un servidor nuestro sea accesible desde internet es que, por lo general, los prestadores de servicio de internet nos asigna una IP

Más detalles

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente. PLANTILLAS EN PHP El concepto de plantilla, es un criterio del desarrollo web que propone optimizar la cantidad de documentos HTML que se usan en el desarrollo de un sitio web. A lo largo de la navegación

Más detalles

INTEGRACION FÁCIL CON PAGOSONLINE

INTEGRACION FÁCIL CON PAGOSONLINE INTEGRACION FÁCIL CON PAGOSONLINE Introducción... 3 Prerrequisitos de una integración fácil con Pagosonline... 5 Como crear un botón de pago... 8 Como crear un carrito de compras... 12 Como realizar pruebas

Más detalles

Servidor. Comenzaremos por confirmar que el servicio NFS esta instalado y ejecutandose desde la terminal, escribiremos lo siguiente: #rpm -q nfs-utils

Servidor. Comenzaremos por confirmar que el servicio NFS esta instalado y ejecutandose desde la terminal, escribiremos lo siguiente: #rpm -q nfs-utils NFS Red Hat Enterprise Linux 6 provee dos mecanismos para compartir archivos y carpetas con otros sistemas operativos por medio de la red. Una de las opciones es utilizar una tecnologia llamada samba.

Más detalles

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY BrowserSQL MySQL Workbench en Linux (Abril 2015, Mendoza) Aviso Legal El presente libro electrónico se distribuye bajo

Más detalles

Instalación de dos Sistemas Operativos en un mismo Computador

Instalación de dos Sistemas Operativos en un mismo Computador Instalación de dos Sistemas Operativos en un mismo Computador Si quieres tener los dos sistemas operativos en un mismo equipo y elegir, entre uno y otro, en el momento del arranque, debes realizar los

Más detalles

Guía de instalación del sistema contafiscal nuevo monousuario internet

Guía de instalación del sistema contafiscal nuevo monousuario internet Guía de instalación del sistema contafiscal nuevo monousuario internet Requerimientos del equipo Requisitos de equipo (Hardware) Sistema mono usuario. Pentium IV o superior a 1.50 GHz o similar. 2 GB en

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19

Más detalles

Tutorial de instalación

Tutorial de instalación Tutorial de instalación y configuración servidor local (MYSQL) VERSIÓN 1.0 Tel. 01 800 63 22 887 www.factureya.com ÍNDICE INTRODUCCIÓN 3 1 DESCARGA 2 INSTALACIÓN 3 CONFIGURACIÓN 4 10 32 www.factureya.com

Más detalles

TUTORIAL PRÁCTICO COMPLETO DE BASE DE DATOS EN PHPMYADMIN Y GESTIÓN DESDE DREAMWEAVER

TUTORIAL PRÁCTICO COMPLETO DE BASE DE DATOS EN PHPMYADMIN Y GESTIÓN DESDE DREAMWEAVER TUTORIAL PRÁCTICO COMPLETO DE BASE DE DATOS EN PHPMYADMIN Y GESTIÓN DESDE DREAMWEAVER 1. Crear una nueva base de datos en phpmyadmin Abrimos el wampserver y luego el phpmyadmin Para seguir este tutorial,

Más detalles

Ambos paquetes simplifican mucho la instalación del servidor en el equipo. Y ambos pueden ser utilizados para la creación de una red intra-aula.

Ambos paquetes simplifican mucho la instalación del servidor en el equipo. Y ambos pueden ser utilizados para la creación de una red intra-aula. Instalación de una red intra-aula sobre Windows Introducción La idea y la fundamentación de la creación de redes intra-aula, se puede encontrar en el siguiente enlace: http://www.fedaro.info/2009/06/29/redes-intra-aula/

Más detalles

Instalación, Mantenimiento y Administración del PHPWebQuest para una Intranet

Instalación, Mantenimiento y Administración del PHPWebQuest para una Intranet Módulo WebQuest Instalación, Mantenimiento y Administración del PHPWebQuest para una Intranet Instalando Servidor Web de nuestra Intranet Para instalar nuestra Plataforma PHPWebQuest, la misma que permita

Más detalles

15 CORREO WEB CORREO WEB

15 CORREO WEB CORREO WEB CORREO WEB Anteriormente Hemos visto cómo funciona el correo electrónico, y cómo necesitábamos tener un programa cliente (Outlook Express) para gestionar los mensajes de correo electrónico. Sin embargo,

Más detalles

Hostaliawhitepapers. Redirección 301. Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199. www.hostalia.com

Hostaliawhitepapers. Redirección 301. Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199. www.hostalia.com Redirección 301 Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com Redirección 301 Alguna vez te has planteado cambiar tu aplicación web que tienes en marcha a otra dirección

Más detalles

GUIA DE BLOQUEO Y DESBLOQUEO WEB

GUIA DE BLOQUEO Y DESBLOQUEO WEB GUIA DE BLOQUEO Y DESBLOQUEO WEB CONTENIDO BLOQUEO WEB EN WINDOWS 7...3 DESBLOQUEO WEB EN WINDOWS 7...8 BLOQUEAR NAVEGACIÓN WEB DESDE EL NAVEGADOR...9 INTERNET EXPLORER...9 CHROME... 13 FIREFOX... 16 Página

Más detalles

GUÍA PARA LA INSTALACIÓN Y USO DE WORDPRESS BY MASTERHACKS. www.masterhacks.net. Guía de instalación y uso de Wordpress Página 1

GUÍA PARA LA INSTALACIÓN Y USO DE WORDPRESS BY MASTERHACKS. www.masterhacks.net. Guía de instalación y uso de Wordpress Página 1 GUÍA PARA LA INSTALACIÓN Y USO DE WORDPRESS BY MASTERHACKS www.masterhacks.net Guía de instalación y uso de Wordpress Página 1 Wordpress es un sistema muy utilizado para la creación de blogs. Este se puede

Más detalles

Correo Electrónico: Webmail: Horde 3.1.1

Correo Electrónico: Webmail: Horde 3.1.1 CONTENIDOS: PAGINA Qué es Webmail?. 2 Acceder a Webmail. 2 Instilación del Certificado UCO. 4 Instilación Certificado I.explorer. 4 Instilación Certificado Firefox. 7 Opciones Webmail. 8 Opciones Información

Más detalles

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA El Acceso al correo a través de OWA (Outlook Web Access) es una herramienta que permite a los usuarios consultar sus mensajes en una interfaz Web a través de un

Más detalles

Guía Práctica para el Uso del Servicio de Software Zoho CRM

Guía Práctica para el Uso del Servicio de Software Zoho CRM Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición

Más detalles

PLANTILLAS DE DOCUMENTOS EN WORD 2007

PLANTILLAS DE DOCUMENTOS EN WORD 2007 1 PLANTILLAS DE DOCUMENTOS EN WORD 2007 Introducción Una plantilla es un modelo o patrón para crear nuevos documentos. En una plantilla se guarda internamente el formato utilizado, es decir, el estilo

Más detalles

Programa. Conceptos básicos: variables, valores y objetos predefinidos, operadores, etc. etc. Callbacks, eval(), etc.

Programa. Conceptos básicos: variables, valores y objetos predefinidos, operadores, etc. etc. Callbacks, eval(), etc. Programa Programa 1. Introducción. Repaso HTML-CSS. Orientaciones Generales. 2. Javascript: Qué es? Dónde se ejecuta? Cómo se ejecuta? Conceptos básicos: variables, valores y objetos predefinidos, operadores,

Más detalles

Manual de usuario administrador. Correo Exchange Administrado

Manual de usuario administrador. Correo Exchange Administrado Manual de usuario administrador Correo Exchange Administrado Triara.com SA de CV Todos los derechos reservados Esta guía no puede ser reproducido ni distribuida en su totalidad ni en parte, en cualquier

Más detalles

Mantenimiento Limpieza

Mantenimiento Limpieza Mantenimiento Limpieza El programa nos permite decidir qué tipo de limpieza queremos hacer. Si queremos una limpieza diaria, tipo Hotel, en el que se realizan todos los servicios en la habitación cada

Más detalles

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta Configuración de una red con Windows Aunque existen múltiples sistemas operativos, el más utilizado en todo el mundo sigue siendo Windows de Microsoft. Por este motivo, vamos a aprender los pasos para

Más detalles

Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007

Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007 1 de 20 10/09/2008 13:53 Migrar una organización Microsoft Exchange 2003 a Microsoft Exchange 2007 Migrar Exchange 2003 a Exchange 2007 o Exchange 2000 a Exchange 2007, Bueno, en este documento veremos

Más detalles

1º Crear nuestro blog en blogger

1º Crear nuestro blog en blogger COMO CREAR UN BLOG Hoy en día los blogs están en alza, muchas personas quieren tener su espacio en Internet para publicar sus opiniones, sus experiencias, etc., y la forma más sencilla y fácil es con un

Más detalles

Bienvenido al sistema de Curriculum Digital CVDigital

Bienvenido al sistema de Curriculum Digital CVDigital CVDigital 1 Bienvenido al sistema de Curriculum Digital CVDigital Este programa se ha desarrollado con el fin de llevar a cabo Certificaciones y Recertificaciones de los profesionales a partir del ingreso

Más detalles

El almacén: sistema de archivos

El almacén: sistema de archivos 1 de 9 19/09/2011 13:49 El almacén: sistema de archivos Como dispones ya de una plataforma Moodle y has hecho una configuración concreta, ya sea por temas, semanas o cualquier otra, el paso siguiente es

Más detalles

Conociendo el ambiente de programación de Java. M. en C. Erika Vilches

Conociendo el ambiente de programación de Java. M. en C. Erika Vilches Conociendo el ambiente de programación de Java M. en C. Erika Vilches La variable PATH Una vez que se ha aceptado la licencia del JDK y que se ha instalado satisfactoriamente y antes de poder utilizarlo,

Más detalles

INSTALACIÓN DE GITLAB

INSTALACIÓN DE GITLAB INSTALACIÓN DE GITLAB ÍNDICE INSTALACIÓN GITLAB... 3 CREAR USUARIOS... 5 CREAR PROYECTO... 7 INSTALACIÓN CLIENTE GIT... 9 1 Para tener una especie de Github o Bitbucket personal, podemos hacer uso de la

Más detalles

GIT Dinahosting 3. Hola!

GIT Dinahosting 3. Hola! GIT Manual de uso GIT Dinahosting 2 Contenidos Sobre Git...3 Software...3 Cómo conectarse?...3 Volcar un repositorio remoto...4 Manejar el repositorio...5 Trabajando con ramificaciones...6 Fusionando ramificaciones...6

Más detalles

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA

CONFEDERACIÓN DE EMPRESARIOS DE MÁLAGA GUÍA DEL ALUMNO 1 Introducción 2 Acceso a la plataforma 3 Cerrar sesión 4 Estructura del curso virtual 5 Foros 5.1 No quiero recibir copias de los foros en mi email 6 Mensajería Interna 7 Como subir tareas

Más detalles

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS 1) EL PEQUEÑO EDITOR El Bloc de notas de Windows XP es un básico editor de texto con el que podemos escribir anotaciones, de hasta 1024 caracteres por línea y

Más detalles

PRÁCTICA 10. Configuración de Correo y Publicar en la Web

PRÁCTICA 10. Configuración de Correo y Publicar en la Web PRÁCTICA 10. Configuración de Correo y Publicar en la Web INFORMÁTICA BÁSICA Publicidad y Relaciones Públicas y Periodismo. Curso 2006/2007 1. Configuración del correo Gestores de correo en la máquina

Más detalles

Introducción a PHP. * No es necesario declarar previamente las variables.

Introducción a PHP. * No es necesario declarar previamente las variables. Introducción a PHP La programación de sitios web cada día está más orientada al desarrollo de páginas dinámicas y aplicaciones, o sea sitios donde el usuario pueda interactuar con la web. Dentro de los

Más detalles