Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Desarrollando con RoR - Vistas
1. Vistas en Rails 3.0
Desarrollando en Ruby On Rails
Mario Alberto Chávez Cárdenas
http://www.decisionesinteligentes.com
@mario_chavez
sábado 28 de agosto de 2010
3. ¿Quien soy?
De Tijuana, Baja
California
sábado 28 de agosto de 2010
4. ¿Quien soy?
De Tijuana, Baja
California
Ingeniero en Sistemas
Computacionales
sábado 28 de agosto de 2010
5. ¿Quien soy?
De Tijuana, Baja
California
Ingeniero en Sistemas
Computacionales
Consultor
Independiente TI en
decisionesinteligentes.com
sábado 28 de agosto de 2010
6. ¿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
8. ¿Quien soy?
Iniciador de la
comunidad tijuana.rb
sábado 28 de agosto de 2010
9. ¿Quien soy?
Iniciador de la
comunidad tijuana.rb
Google groups
tijuanarb y @tijuanarb
sábado 28 de agosto de 2010
10. ¿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
11. ¿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
21. Vistas
Son la UI de nuestra
aplicación
sábado 28 de agosto de 2010
22. Vistas
Son la UI de nuestra
aplicación
Rails utiliza ERB
sábado 28 de agosto de 2010
23. Vistas
Son la UI de nuestra
aplicación
Rails utiliza ERB
Son una mezcla de
HTML y Ruby
sábado 28 de agosto de 2010
24. Vistas
Son 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
25. Vistas
Son 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
27. Relación VC
Acciones en un
controlador
sábado 28 de agosto de 2010
28. Relación VC
Acciones en un
Vistas
controlador
index index.html.erb
show show.html.erb
new new.html.erb
create
edit edit.html.erb
update
destroy
sábado 28 de agosto de 2010
30. Estructura
Las vistas están en el
directorio views
sábado 28 de agosto de 2010
31. Estructura
Las vistas están en el
directorio views
Hay un directorio con
el nombre de cada
controlador
sábado 28 de agosto de 2010
32. Estructura
Las 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
33. Estructura
Las 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
39. Configurar layout
A nivel aplicación
class ApplicationController <
ActionController::Base
layout ‘main’
end
sábado 28 de agosto de 2010
40. Configurar layout
A nivel aplicación
class ApplicationController <
ActionController::Base
layout ‘main’
end
A nivel controlador
class PublicationsControler <
ApplicationController
layout ‘main’
end
sábado 28 de agosto de 2010
41. Configurar layout
A nivel aplicación
class ApplicationController <
ActionController::Base
layout ‘main’
end
A nivel controlador
class PublicationsControler <
ApplicationController
layout ‘main’
end
A nivel controlador
condicional
class PublicationsControler <
ApplicationController
layout ‘main’, :except => [:new]
end
sábado 28 de agosto de 2010
51. Render de vistas
Render implícito
def show
@publication = Publication.find
(params[:id])
respond_with @publication
end
sábado 28 de agosto de 2010
52. Render de vistas
Render implícito
def show
@publication = Publication.find
(params[:id])
respond_with @publication
end
Render explícito
def show
@publication = Publication.find
(params[:id])
render :show, :layout => ‘coolone’
end
sábado 28 de agosto de 2010
53. Render de vistas
Render implícito
def show
@publication = Publication.find
(params[:id])
respond_with @publication
end
Render explícito
def show
@publication = Publication.find
(params[:id])
render :show, :layout => ‘coolone’
end
Redireccionar a acción
def create
@publication = ...
if @publication.save
redirect_to publications_path
else
render :new
end
end
sábado 28 de agosto de 2010
61. Parciales
A los parciales se les
antepone _ en el
nombre:
_menu.html.erb
sábado 28 de agosto de 2010
62. Parciales
A 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
63. Parciales
A 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
64. Parciales
A 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
65. Parciales
Pasar variables
<%= render :partial => “menu”, :locals
=> { :myvar => @myvar } %> A 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
66. Parciales
Pasar variables
<%= render :partial => “menu”, :locals
=> { :myvar => @myvar } %> A los parciales se les
antepone _ en el
Pasar un objeto nombre:
<%= render :partial => _menu.html.erb
“publication”, :object => @publication
%>
Rails puede inferir el
<%= render @publication %>
nombre del parcial
Manejan su propio
alcance en las variables
En colecciones no
tenemos que hacer .each
sábado 28 de agosto de 2010
67. Parciales
Pasar variables
<%= render :partial => “menu”, :locals
=> { :myvar => @myvar } %> A los parciales se les
antepone _ en el
Pasar un objeto nombre:
<%= render :partial => _menu.html.erb
“publication”, :object => @publication
%>
Rails puede inferir el
<%= render @publication %>
nombre del parcial
Pasar una colección Manejan su propio
<%= render :partial =>
“publications”, :collection =>
alcance en las variables
@publications, :as => :publication %>
<%= render
En colecciones no
@publications, :spacer_template =>
“publication_rule” %>
tenemos que hacer .each
sábado 28 de agosto de 2010
69. Helpers
Métodos que
“escriben” HTML por
nosotros
sábado 28 de agosto de 2010
70. Helpers
Métodos que
“escriben” HTML por
nosotros
Sintaxis de Ruby
sábado 28 de agosto de 2010
71. Helpers
Métodos que
“escriben” HTML por
nosotros
Sintaxis de Ruby
Centrados en el uso de
modelos
sábado 28 de agosto de 2010
72. Helpers
Mé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
73. Helpers
Mé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
74. Helpers
Métodos que
“escriben” HTML por
nosotros
Sintaxis de Ruby Form helpers
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
75. Helpers
Métodos que
“escriben” HTML por
nosotros
Sintaxis de Ruby Form helpers
Centrados en el uso de Model helpers
modelos
Helpers genéricos _tag
y sin _tag para
modelos
Todos los helpers usan
safe code
sábado 28 de agosto de 2010
76. Helpers
Métodos que
“escriben” HTML por
nosotros
Sintaxis de Ruby Form helpers
Centrados en el uso de Model helpers
modelos
Date and Time
Helpers genéricos _tag helpers
y sin _tag para
modelos
Todos los helpers usan
safe code
sábado 28 de agosto de 2010
77. Helpers
Métodos que
“escriben” HTML por
nosotros
Sintaxis de Ruby Form helpers
Centrados en el uso de Model helpers
modelos
Date and Time
Helpers genéricos _tag helpers
y sin _tag para
modelos Custom helpers
Todos los helpers usan
safe code
sábado 28 de agosto de 2010
79. 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
80. 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
81. Form helpers
<%= form_tag(search_path, :method =>
"get") do %>
check_box>tag <%= 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
82. Form helpers
<%= form_tag(search_path, :method =>
"get") do %>
check_box>tag <%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
radio_button_tag <%= 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
83. Form helpers
<%= form_tag(search_path, :method =>
"get") do %>
check_box>tag <%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
radio_button_tag <%= submit_tag("Search") %>
<% end %>
text_area_tag
<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
84. Form helpers
<%= form_tag(search_path, :method =>
"get") do %>
check_box>tag <%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
radio_button_tag <%= submit_tag("Search") %>
<% end %>
text_area_tag
<form action="/search" method="get">
password_field_tag <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
85. Form helpers
<%= form_tag(search_path, :method =>
"get") do %>
check_box>tag <%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
radio_button_tag <%= submit_tag("Search") %>
<% end %>
text_area_tag
<form action="/search" method="get">
password_field_tag <label for="q">Search for:</label>
<input id="q" name="q" type="text" />
hidden_field_tag <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
86. Form helpers
<%= form_tag(search_path, :method =>
"get") do %>
check_box>tag <%= label_tag(:q, "Search for:") %>
<%= text_field_tag(:q) %>
radio_button_tag <%= submit_tag("Search") %>
<% end %>
text_area_tag
<form action="/search" method="get">
password_field_tag <label for="q">Search for:</label>
<input id="q" name="q" type="text" />
hidden_field_tag <input name="commit" type="submit"
value="Search" />
</form>
select_tag
Para obtener el valor del input “q” en
el controlador usamos params[:q]
sábado 28 de agosto de 2010
88. Model helpers
<%= form @publication do |f| %>
<%= f.label :message %>
<%= f.text_field :message %>
<%= f.submit("Crear") %>
<% end %>
sábado 28 de agosto de 2010
89. 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
90. Model helpers
<%= form @publication do |f| %>
check_box <%= 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
91. Model helpers
<%= form @publication do |f| %>
check_box <%= f.label :message %>
<%= f.text_field :message %>
<%= f.submit("Crear") %>
radio_button <% 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
92. Model helpers
<%= form @publication do |f| %>
check_box <%= f.label :message %>
<%= f.text_field :message %>
<%= f.submit("Crear") %>
radio_button <% end %>
text_area <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
93. Model helpers
<%= form @publication do |f| %>
check_box <%= f.label :message %>
<%= f.text_field :message %>
<%= f.submit("Crear") %>
radio_button <% end %>
text_area <form action="/publications"
method="post">
password_field <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
94. Model helpers
<%= form @publication do |f| %>
check_box <%= f.label :message %>
<%= f.text_field :message %>
<%= f.submit("Crear") %>
radio_button <% end %>
text_area <form action="/publications"
method="post">
password_field <label for="message">Message</label>
<input id="publication_message"
hidden_field 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
95. Model helpers
<%= form @publication do |f| %>
check_box <%= f.label :message %>
<%= f.text_field :message %>
<%= f.submit("Crear") %>
radio_button <% end %>
text_area <form action="/publications"
method="post">
password_field <label for="message">Message</label>
<input id="publication_message"
hidden_field name="publication[name]" type="text" />
<input name="commit" type="submit"
value="Crear" />
select </form>
En el controlador obtenemos el objeto
con params[:publication]
sábado 28 de agosto de 2010
99. Otros helpers
Javascript
<%= javascript_include_tag
‘applications’, ‘tools’ %> Estos helpers esperan
<%= javascript_include_tag :all %> encontrar los archivos
<%= javascript_include_tag
‘application’, ‘tools’, :cache => true
en /public
%>
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
100. Otros helpers
Javascript
<%= javascript_include_tag
‘applications’, ‘tools’ %> Estos helpers esperan
<%= javascript_include_tag :all %> encontrar los archivos
<%= javascript_include_tag
‘application’, ‘tools’, :cache => true
en /public
%>
/javascripts
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
101. Otros helpers
Javascript
<%= javascript_include_tag
‘applications’, ‘tools’ %> Estos helpers esperan
<%= javascript_include_tag :all %> encontrar los archivos
<%= javascript_include_tag
‘application’, ‘tools’, :cache => true
en /public
%>
/javascripts
Stylesheet
<%= stylesheet_link_tag ‘application’,
‘admin’ %>
/stylesheets
<%= stylesheet_link_tag :all %>
<%= stylesheet_link_tag ‘application’,
‘admin’, :cache => true %>
Image tag
<%= image_tag ‘header.png’ %>
sábado 28 de agosto de 2010
102. Otros helpers
Javascript
<%= javascript_include_tag
‘applications’, ‘tools’ %> Estos helpers esperan
<%= javascript_include_tag :all %> encontrar los archivos
<%= javascript_include_tag
‘application’, ‘tools’, :cache => true
en /public
%>
/javascripts
Stylesheet
<%= stylesheet_link_tag ‘application’,
‘admin’ %>
/stylesheets
<%= stylesheet_link_tag :all %> /images
<%= stylesheet_link_tag ‘application’,
‘admin’, :cache => true %>
Image tag
<%= image_tag ‘header.png’ %>
sábado 28 de agosto de 2010
103. Otros helpers
Javascript
<%= javascript_include_tag
‘applications’, ‘tools’ %> Estos helpers esperan
<%= javascript_include_tag :all %> encontrar los archivos
<%= javascript_include_tag
‘application’, ‘tools’, :cache => true
en /public
%>
/javascripts
Stylesheet
<%= stylesheet_link_tag ‘application’,
‘admin’ %>
/stylesheets
<%= stylesheet_link_tag :all %> /images
<%= stylesheet_link_tag ‘application’,
‘admin’, :cache => true %>
Image tag Link to
<%= image_tag ‘header.png’ %> <%= link_to ‘Nuevo’,
new_publication_path %>
sábado 28 de agosto de 2010
104. Ajax en el cliente
sábado 28 de agosto de 2010
105. Ajax en el cliente
Es no obstructivo en
Rails 3.0
sábado 28 de agosto de 2010
106. Ajax en el cliente
Es no obstructivo en
Rails 3.0
Es agnósticos, podemos
reemplazar prototype
por jquery
sábado 28 de agosto de 2010
107. Ajax en el cliente
Es 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
108. Ajax en el cliente
Es 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
109. Ajax en el cliente
Es 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
110. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> 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
111. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> Rails 3.0
Con ajax Es agnósticos, podemos
<%= link_to ‘Mi link’,
algun_path, :remote => true %> reemplazar prototype
<% form_for (@modelo, :remote => true) por jquery
do |m| %>
Usa HTML5 para agregar
atributos
No hay helpers
especiales
sábado 28 de agosto de 2010
112. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> Rails 3.0
Con ajax Es agnósticos, podemos
<%= link_to ‘Mi link’,
algun_path, :remote => true %> reemplazar prototype
<% form_for (@modelo, :remote => true) por jquery
do |m| %>
Usa HTML5 para agregar
Atributos HTML5 atributos
No hay helpers
especiales
sábado 28 de agosto de 2010
113. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> Rails 3.0
Con ajax Es agnósticos, podemos
<%= link_to ‘Mi link’,
algun_path, :remote => true %> reemplazar prototype
<% form_for (@modelo, :remote => true) por jquery
do |m| %>
Usa HTML5 para agregar
Atributos HTML5 atributos
data-remote
No hay helpers
especiales
sábado 28 de agosto de 2010
114. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> Rails 3.0
Con ajax Es agnósticos, podemos
<%= link_to ‘Mi link’,
algun_path, :remote => true %> reemplazar prototype
<% form_for (@modelo, :remote => true) por jquery
do |m| %>
Usa HTML5 para agregar
Atributos HTML5 atributos
data-remote
No hay helpers
data-method especiales
sábado 28 de agosto de 2010
115. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> Rails 3.0
Con ajax Es agnósticos, podemos
<%= link_to ‘Mi link’,
algun_path, :remote => true %> reemplazar prototype
<% form_for (@modelo, :remote => true) por jquery
do |m| %>
Usa HTML5 para agregar
Atributos HTML5 atributos
data-remote
No hay helpers
data-method especiales
data-confirm
sábado 28 de agosto de 2010
116. Ajax en el cliente
No ajax
<%= link_to ‘Mi link’, algun_path %> Es no obstructivo en
<% form_for @modelo do |m| %> Rails 3.0
Con ajax Es agnósticos, podemos
<%= link_to ‘Mi link’,
algun_path, :remote => true %> reemplazar prototype
<% form_for (@modelo, :remote => true) por jquery
do |m| %>
Usa HTML5 para agregar
Atributos HTML5 atributos
data-remote
No hay helpers
data-method especiales
data-confirm
data-disable-with
sábado 28 de agosto de 2010
117. Ajax en el server
sábado 28 de agosto de 2010
118. Ajax en el server
Si queremos jquery en lugar
de prototype
sábado 28 de agosto de 2010
119. Ajax en el server
Si queremos jquery en lugar
de prototype
Agregamos jquery a
javascripts
sábado 28 de agosto de 2010
120. Ajax en el server
Si queremos jquery en lugar
de prototype
Agregamos jquery a
javascripts
Borramos prototype
sábado 28 de agosto de 2010
121. Ajax en el server
Si queremos jquery en lugar Agregamos la referencia
de prototype en javascript_include_tag
Agregamos jquery a
javascripts
Borramos prototype
Descargamos rails.js de
http://github.com/rails/
jquery-ujs/tree/master/
src/ a javascript
sábado 28 de agosto de 2010
122. Ajax en el server
Si queremos jquery en lugar Agregamos la referencia
de prototype en javascript_include_tag
Agregamos jquery a Crear una vista
javascripts <accion>.js.erb
Borramos prototype
Descargamos rails.js de
http://github.com/rails/
jquery-ujs/tree/master/
src/ a javascript
sábado 28 de agosto de 2010
123. Ajax en el server
Si queremos jquery en lugar Agregamos la referencia
de prototype en javascript_include_tag
Agregamos jquery a Crear una vista
javascripts <accion>.js.erb
Borramos prototype Esta vista combina
javascript y Ruby
Descargamos rails.js de
http://github.com/rails/
jquery-ujs/tree/master/
src/ a javascript
sábado 28 de agosto de 2010
124. Ajax en el server
Si queremos jquery en lugar Agregamos la referencia
de prototype en javascript_include_tag
Agregamos jquery a Crear una vista
javascripts <accion>.js.erb
Borramos prototype Esta vista combina
javascript y Ruby
Descargamos rails.js de
http://github.com/rails/ Por seguridad usamos
jquery-ujs/tree/master/ protect_from_forgery en
src/ a javascript ApplicationController
sábado 28 de agosto de 2010
125. Recursos
http://edgeguides.rubyonrails.org
http://rubyonrails.org/screencasts/
rails3/
http://railscasts.com/
http://groups.google.com/group/
tijuanarb
http://rails.mx
sábado 28 de agosto de 2010
126. Gracias
Desarrollando en Ruby On Rails
Mario Alberto Chávez Cárdenas
http://www.decisionesinteligentes.com
@mario_chavez
sábado 28 de agosto de 2010