Saltar al contenido

¿Cómo puedo llamar a los métodos auxiliares de controlador/vista desde la consola en Ruby on Rails?

No olvides que en la informática un problema casi siempere puede tener más de una soluciones, de igual modo nosotros enseñamos lo más óptimo y mejor.

Solución:

Para llamar a los ayudantes, utilice el helper objeto:

$ ./script/console
>> helper.number_to_currency('123.45')
=> "R$ 123,45"

Si desea utilizar un asistente que no está incluido de forma predeterminada (por ejemplo, porque eliminó helper :all desde ApplicationController), solo incluye el ayudante.

>> include BogusHelper
>> helper.bogus
=> "bogus output"

En cuanto a tratar con controladorescito la respuesta de Nick:

> app.get '/posts/1'
> response = app.response
# you now have a rails response object much like the integration tests

> response.body            # get you the HTML
> response.cookies         # hash of the cookies

# etc, etc

Una manera fácil de llamar a una acción de controlador desde un script/consola y ver/manipular el objeto de respuesta es:

> app.get '/posts/1'
> response = app.response
# You now have a Ruby on Rails response object much like the integration tests

> response.body            # Get you the HTML
> response.cookies         # Hash of the cookies

# etc., etc.

El objeto de la aplicación es una instancia de ActionController::Integration::Session

Esto funciona para mí usando Ruby on Rails 2.1 y 2.3, y no probé versiones anteriores.

Si necesita probar desde la consola (probado en Ruby on Rails 3.1 y 4.1):

Acciones del controlador de llamadas:

app.get '/'
   app.response
   app.response.headers  # =>  "Content-Type"=>"text/html", ... 
   app.response.body     # => "nnnn..."

Métodos del controlador de aplicaciones:

foo = ActionController::Base::ApplicationController.new
foo.public_methods(true||false).sort
foo.some_method

Ayudantes de ruta:

app.myresource_path     # => "/myresource"
app.myresource_url      # => "http://www.example.com/myresource"

Ver ayudantes:

foo = ActionView::Base.new

foo.javascript_include_tag 'myscript' #=> ""

helper.link_to "foo", "bar" #=> "foo"

ActionController::Base.helpers.image_tag('logo.png')  #=> "Logo
"

Prestar:

views = Rails::Application::Configuration.new(Rails.root).paths["app/views"]
views_helper = ActionView::Base.new views
views_helper.render 'myview/mytemplate'
views_helper.render file: 'myview/_mypartial', locals: my_var: "display:block;"
views_helper.assets_prefix  #=> '/assets'

Métodos de soporte activo:

require 'active_support/all'
1.week.ago
=> 2013-08-31 10:07:26 -0300
a = 'a'=>123
a.symbolize_keys
=> :a=>123

Módulos de biblioteca:

> require 'my_utils'
 => true
> include MyUtils
 => Object
> MyUtils.say "hi"
evaluate: hi
 => true

Si estás de acuerdo, tienes la habilidad dejar una reseña acerca de qué le añadirías a este escrito.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *