desarrollando con ror - vistas

Post on 06-Apr-2015

94 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Vistas en Rails 3.0Desarrollando en Ruby On Rails

Mario Alberto Chávez Cárdenashttp://www.decisionesinteligentes.com

@mario_chavez

sábado 28 de agosto de 2010

¿Quien soy?

sábado 28 de agosto de 2010

¿Quien soy?De Tijuana, Baja California

sábado 28 de agosto de 2010

¿Quien soy?De Tijuana, Baja California

Ingeniero en Sistemas Computacionales

sábado 28 de agosto de 2010

¿Quien soy?De Tijuana, Baja California

Ingeniero en Sistemas Computacionales

Consultor Independiente TI en decisionesinteligentes.com

sábado 28 de agosto de 2010

¿Quien soy?De Tijuana, Baja California

Ingeniero en Sistemas Computacionales

Consultor Independiente TI en decisionesinteligentes.com

Entre a Rails hace 2 años

sábado 28 de agosto de 2010

¿Quien soy?

sábado 28 de agosto de 2010

¿Quien soy?Iniciador de la comunidad tijuana.rb

sábado 28 de agosto de 2010

¿Quien soy?Iniciador de la comunidad tijuana.rb

Google groups tijuanarb y @tijuanarb

sábado 28 de agosto de 2010

¿Quien soy?Iniciador de la comunidad tijuana.rb

Google groups tijuanarb y @tijuanarb

Iniciador de los SHDHTJ en Tijuana

sábado 28 de agosto de 2010

¿Quien soy?Iniciador de la comunidad tijuana.rb

Google groups tijuanarb y @tijuanarb

Iniciador de los SHDHTJ en Tijuana

Blog http://mario-chavez.blogspot.com

sábado 28 de agosto de 2010

MVC

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

MVCNavegador

Controlador

Modelo

Servidor webRuteo

Ejecución

Vista

sábado 28 de agosto de 2010

Vistas

sábado 28 de agosto de 2010

VistasSon la UI de nuestra aplicación

sábado 28 de agosto de 2010

VistasSon la UI de nuestra aplicación

Rails utiliza ERB

sábado 28 de agosto de 2010

VistasSon la UI de nuestra aplicación

Rails utiliza ERB

Son una mezcla de HTML y Ruby

sábado 28 de agosto de 2010

VistasSon la UI de nuestra aplicación

Rails utiliza ERB

Son una mezcla de HTML y Ruby

Son plantillas

sábado 28 de agosto de 2010

VistasSon la UI de nuestra aplicación

Rails utiliza ERB

Son una mezcla de HTML y Ruby

Son plantillas

<%= “Hola mundo” %>

sábado 28 de agosto de 2010

Relación VC

sábado 28 de agosto de 2010

Relación VCAcciones en un

controlador

sábado 28 de agosto de 2010

Relación VC

index

show

new

create

edit

update

destroy

index.html.erb

show.html.erb

new.html.erb

edit.html.erb

Acciones en un controlador

Vistas

sábado 28 de agosto de 2010

Estructura

sábado 28 de agosto de 2010

EstructuraLas vistas están en el directorio views

sábado 28 de agosto de 2010

EstructuraLas vistas están en el directorio views

Hay un directorio con el nombre de cada controlador

sábado 28 de agosto de 2010

EstructuraLas vistas están en el directorio views

Hay un directorio con el nombre de cada controlador

Layout contiene plantillas de estructura

sábado 28 de agosto de 2010

EstructuraLas vistas están en el directorio views

Hay un directorio con el nombre de cada controlador

Layout contiene plantillas de estructura

Shared contiene plantillas compartidas

sábado 28 de agosto de 2010

Layouts

sábado 28 de agosto de 2010

Layouts

sábado 28 de agosto de 2010

LayoutsHtml de la estructura compartida de la aplicación

sábado 28 de agosto de 2010

LayoutsHtml de la estructura compartida de la aplicación

<html> <head /> <body> <div id=”header”> ... </div> <div id=”content”> <%= yield %> </div> <div id=”sidebar”> <%= yield :sidebar %> </div> <div id=”footer”> ... </div> </body></html>

sábado 28 de agosto de 2010

Configurar layout

sábado 28 de agosto de 2010

Configurar layoutA nivel aplicación

class ApplicationController < ActionController::Base layout ‘main’end

sábado 28 de agosto de 2010

Configurar layoutA nivel aplicación

class ApplicationController < ActionController::Base layout ‘main’end

A nivel controladorclass PublicationsControler < ApplicationController layout ‘main’end

sábado 28 de agosto de 2010

Configurar layoutA nivel aplicación

class ApplicationController < ActionController::Base layout ‘main’end

A nivel controladorclass PublicationsControler < ApplicationController layout ‘main’end

A nivel controlador condicional

class PublicationsControler < ApplicationController layout ‘main’, :except => [:new]end

sábado 28 de agosto de 2010

Trabajar con vistas

sábado 28 de agosto de 2010

Trabajar con vistas

sábado 28 de agosto de 2010

Trabajar con vistasHtml y Ruby conforman el contenido de la vista

sábado 28 de agosto de 2010

Trabajar con vistasHtml y Ruby conforman el contenido de la vista

<div id="publication"> <div class="publidate"> <h4><span><%=@publication.created_at.day%></span> <%=@publication.created_at.strftime('%b').downcase!%></h4> </div> <div class="publititle"> <h3><%= @publication.title %></h3> <p>por: <%= @publication.user.display_name %></p> </div> <div class="publitype"> <%=image_tag get_category_image(@publication), :alt => get_category_name(@publication) %> </div> <div class="publicontent"> <p><%= @publication.body %></p> </div></div>

sábado 28 de agosto de 2010

Trabajar con vistas

sábado 28 de agosto de 2010

Trabajar con vistasLayout

<html> <head /> <body> <div id=”header”> ... </div> <div id=”content”> <%= yield %> </div> <div id=”sidebar”> <%= yield :sidebar %> </div> <div id=”footer”> ... </div> </body></html>

sábado 28 de agosto de 2010

Trabajar con vistasLayout

Vista (show)<html> <head /> <body> <div id=”header”> ... </div> <div id=”content”> <%= yield %> </div> <div id=”sidebar”> <%= yield :sidebar %> </div> <div id=”footer”> ... </div> </body></html>

<div> <h1>Contenido principal</h1> <div> ... </div></div>

<% content_for :sidebar %> <h2>Contenido del sidebar</h2> <div> ... </div><% end %>

sábado 28 de agosto de 2010

Render de vistas

sábado 28 de agosto de 2010

Render de vistas

sábado 28 de agosto de 2010

Render de vistasRender implícito

def show @publication = Publication.find(params[:id]) respond_with @publicationend

sábado 28 de agosto de 2010

Render de vistasRender implícito

def show @publication = Publication.find(params[:id]) respond_with @publicationend

Render explícitodef show @publication = Publication.find(params[:id]) render :show, :layout => ‘coolone’end

sábado 28 de agosto de 2010

Render de vistasRender implícito

def show @publication = Publication.find(params[:id]) respond_with @publicationend

Render explícitodef show @publication = Publication.find(params[:id]) render :show, :layout => ‘coolone’end

Redireccionar a accióndef create @publication = ... if @publication.save redirect_to publications_path else render :new endend

sábado 28 de agosto de 2010

Simplificar vistas

sábado 28 de agosto de 2010

Simplificar vistas

sábado 28 de agosto de 2010

Simplificar vistasVistas grande y complejas se pueden “romper en pedazos”

sábado 28 de agosto de 2010

Simplificar vistasVistas grande y complejas se pueden “romper en pedazos”

Parciales privados o compartidos

sábado 28 de agosto de 2010

Simplificar vistasVistas grande y complejas se pueden “romper en pedazos”

Parciales privados o compartidos

<div id="publication"> <div class="publidate"> <h4><span><%=@publication.created_at.day%></span> <%=@publication.created_at.strftime('%b').downcase!%></h4> </div> <div class="publititle"> <h3><%= @publication.title %></h3> <p>por: <%= @publication.user.display_name %></p> </div> <div class="publitype"> <%=image_tag get_category_image(@publication), :alt => get_category_name(@publication) %> </div> <div class="publicontent"> <p><%= @publication.body %></p> </div></div>

sábado 28 de agosto de 2010

Simplificar vistasVistas grande y complejas se pueden “romper en pedazos”

Parciales privados o compartidos

<div id="publication"> <%= render “content” %>

<%= render “shared/attachments” %></div>

<div id=”comments”> <%= render “comments” %></div>

<div id=”form”> <%= render “add_comment” %></div>

sábado 28 de agosto de 2010

Parciales

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

Rails puede inferir el nombre del parcial

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

Rails puede inferir el nombre del parcial

Manejan su propio alcance en las variables

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

Rails puede inferir el nombre del parcial

Manejan su propio alcance en las variables

En colecciones no tenemos que hacer .each

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

Rails puede inferir el nombre del parcial

Manejan su propio alcance en las variables

En colecciones no tenemos que hacer .each

Pasar variables<%= render :partial => “menu”, :locals => { :myvar => @myvar } %>

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

Rails puede inferir el nombre del parcial

Manejan su propio alcance en las variables

En colecciones no tenemos que hacer .each

Pasar variables<%= render :partial => “menu”, :locals => { :myvar => @myvar } %>

Pasar un objeto<%= render :partial => “publication”, :object => @publication %>

<%= render @publication %>

sábado 28 de agosto de 2010

ParcialesA los parciales se les antepone _ en el nombre: _menu.html.erb

Rails puede inferir el nombre del parcial

Manejan su propio alcance en las variables

En colecciones no tenemos que hacer .each

Pasar variables<%= render :partial => “menu”, :locals => { :myvar => @myvar } %>

Pasar un objeto<%= render :partial => “publication”, :object => @publication %>

<%= render @publication %>

Pasar una colección<%= render :partial => “publications”, :collection => @publications, :as => :publication %>

<%= render @publications, :spacer_template => “publication_rule” %>

sábado 28 de agosto de 2010

Helpers

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

Helpers genéricos _tag y sin _tag para modelos

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

Helpers genéricos _tag y sin _tag para modelos

Todos los helpers usan safe code

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

Helpers genéricos _tag y sin _tag para modelos

Todos los helpers usan safe code

Form helpers

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

Helpers genéricos _tag y sin _tag para modelos

Todos los helpers usan safe code

Form helpers

Model helpers

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

Helpers genéricos _tag y sin _tag para modelos

Todos los helpers usan safe code

Form helpers

Model helpers

Date and Time helpers

sábado 28 de agosto de 2010

HelpersMétodos que “escriben” HTML por nosotros

Sintaxis de Ruby

Centrados en el uso de modelos

Helpers genéricos _tag y sin _tag para modelos

Todos los helpers usan safe code

Form helpers

Model helpers

Date and Time helpers

Custom helpers

sábado 28 de agosto de 2010

Form helpers

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

check_box>tag

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

check_box>tag

radio_button_tag

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

check_box>tag

radio_button_tag

text_area_tag

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

check_box>tag

radio_button_tag

text_area_tag

password_field_tag

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

check_box>tag

radio_button_tag

text_area_tag

password_field_tag

hidden_field_tag

sábado 28 de agosto de 2010

Form helpers<%= form_tag(search_path, :method => "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag("Search") %><% end %>

<form action="/search" method="get"> <label for="q">Search for:</label> <input id="q" name="q" type="text" /> <input name="commit" type="submit" value="Search" /></form>

Para obtener el valor del input “q” en el controlador usamos params[:q]

check_box>tag

radio_button_tag

text_area_tag

password_field_tag

hidden_field_tag

select_tag

sábado 28 de agosto de 2010

Model helpers

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

check_box

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

check_box

radio_button

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

check_box

radio_button

text_area

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

check_box

radio_button

text_area

password_field

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

check_box

radio_button

text_area

password_field

hidden_field

sábado 28 de agosto de 2010

Model helpers<%= form @publication do |f| %> <%= f.label :message %> <%= f.text_field :message %> <%= f.submit("Crear") %><% end %>

<form action="/publications" method="post"> <label for="message">Message</label> <input id="publication_message" name="publication[name]" type="text" /> <input name="commit" type="submit" value="Crear" /></form>

En el controlador obtenemos el objeto con params[:publication]

check_box

radio_button

text_area

password_field

hidden_field

select

sábado 28 de agosto de 2010

Otros helpers

sábado 28 de agosto de 2010

Otros helpersJavascript

<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

sábado 28 de agosto de 2010

Otros helpersJavascript

<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

Stylesheet<%= stylesheet_link_tag ‘application’, ‘admin’ %>

<%= stylesheet_link_tag :all %>

<%= stylesheet_link_tag ‘application’, ‘admin’, :cache => true %>

sábado 28 de agosto de 2010

Otros helpersEstos helpers esperan encontrar los archivos en /public

Javascript<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

Stylesheet<%= stylesheet_link_tag ‘application’, ‘admin’ %>

<%= stylesheet_link_tag :all %>

<%= stylesheet_link_tag ‘application’, ‘admin’, :cache => true %>

Image tag<%= image_tag ‘header.png’ %>

sábado 28 de agosto de 2010

Otros helpersEstos helpers esperan encontrar los archivos en /public

/javascripts

Javascript<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

Stylesheet<%= stylesheet_link_tag ‘application’, ‘admin’ %>

<%= stylesheet_link_tag :all %>

<%= stylesheet_link_tag ‘application’, ‘admin’, :cache => true %>

Image tag<%= image_tag ‘header.png’ %>

sábado 28 de agosto de 2010

Otros helpersEstos helpers esperan encontrar los archivos en /public

/javascripts

/stylesheets

Javascript<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

Stylesheet<%= stylesheet_link_tag ‘application’, ‘admin’ %>

<%= stylesheet_link_tag :all %>

<%= stylesheet_link_tag ‘application’, ‘admin’, :cache => true %>

Image tag<%= image_tag ‘header.png’ %>

sábado 28 de agosto de 2010

Otros helpersEstos helpers esperan encontrar los archivos en /public

/javascripts

/stylesheets

/images

Javascript<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

Stylesheet<%= stylesheet_link_tag ‘application’, ‘admin’ %>

<%= stylesheet_link_tag :all %>

<%= stylesheet_link_tag ‘application’, ‘admin’, :cache => true %>

Image tag<%= image_tag ‘header.png’ %>

sábado 28 de agosto de 2010

Otros helpersEstos helpers esperan encontrar los archivos en /public

/javascripts

/stylesheets

/images

Javascript<%= javascript_include_tag ‘applications’, ‘tools’ %>

<%= javascript_include_tag :all %>

<%= javascript_include_tag ‘application’, ‘tools’, :cache => true %>

Stylesheet<%= stylesheet_link_tag ‘application’, ‘admin’ %>

<%= stylesheet_link_tag :all %>

<%= stylesheet_link_tag ‘application’, ‘admin’, :cache => true %>

Image tag<%= image_tag ‘header.png’ %>

Link to<%= link_to ‘Nuevo’, new_publication_path %>

sábado 28 de agosto de 2010

Ajax en el cliente

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

Con ajax<%= link_to ‘Mi link’, algun_path, :remote => true %>

<% form_for (@modelo, :remote => true) do |m| %>

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

Con ajax<%= link_to ‘Mi link’, algun_path, :remote => true %>

<% form_for (@modelo, :remote => true) do |m| %>

Atributos HTML5

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

Con ajax<%= link_to ‘Mi link’, algun_path, :remote => true %>

<% form_for (@modelo, :remote => true) do |m| %>

Atributos HTML5data-remote

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

Con ajax<%= link_to ‘Mi link’, algun_path, :remote => true %>

<% form_for (@modelo, :remote => true) do |m| %>

Atributos HTML5data-remotedata-method

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

Con ajax<%= link_to ‘Mi link’, algun_path, :remote => true %>

<% form_for (@modelo, :remote => true) do |m| %>

Atributos HTML5data-remotedata-methoddata-confirm

sábado 28 de agosto de 2010

Ajax en el clienteEs no obstructivo en Rails 3.0

Es agnósticos, podemos reemplazar prototype por jquery

Usa HTML5 para agregar atributos

No hay helpers especiales

No ajax<%= link_to ‘Mi link’, algun_path %>

<% form_for @modelo do |m| %>

Con ajax<%= link_to ‘Mi link’, algun_path, :remote => true %>

<% form_for (@modelo, :remote => true) do |m| %>

Atributos HTML5data-remotedata-methoddata-confirmdata-disable-with

sábado 28 de agosto de 2010

Ajax en el server

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

Agregamos jquery a javascripts

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

Agregamos jquery a javascripts

Borramos prototype

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

Agregamos jquery a javascripts

Borramos prototype

Descargamos rails.js de http://github.com/rails/jquery-ujs/tree/master/src/ a javascript

Agregamos la referencia en javascript_include_tag

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

Agregamos jquery a javascripts

Borramos prototype

Descargamos rails.js de http://github.com/rails/jquery-ujs/tree/master/src/ a javascript

Agregamos la referencia en javascript_include_tag

Crear una vista <accion>.js.erb

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

Agregamos jquery a javascripts

Borramos prototype

Descargamos rails.js de http://github.com/rails/jquery-ujs/tree/master/src/ a javascript

Agregamos la referencia en javascript_include_tag

Crear una vista <accion>.js.erb

Esta vista combina javascript y Ruby

sábado 28 de agosto de 2010

Ajax en el serverSi queremos jquery en lugar de prototype

Agregamos jquery a javascripts

Borramos prototype

Descargamos rails.js de http://github.com/rails/jquery-ujs/tree/master/src/ a javascript

Agregamos la referencia en javascript_include_tag

Crear una vista <accion>.js.erb

Esta vista combina javascript y Ruby

Por seguridad usamos protect_from_forgery en ApplicationController

sábado 28 de agosto de 2010

GraciasDesarrollando en Ruby On Rails

Mario Alberto Chávez Cárdenashttp://www.decisionesinteligentes.com

@mario_chavez

sábado 28 de agosto de 2010

top related