Problema: Rails 2.1.1 y datetime_select


#1

Hola, estoy pasando un código antiguo a una aplicación Rails 2.1.1, y me
encuentro con lo que parece ser un fallo de esta versión de rails al
tratar con datetime_select:

<% form_for(:usuario, :html => { :method => :post }) do |f| %>
<%= f.datetime_select :ultimo_acceso %>

wrong number of arguments (4 for 3)

/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/helpers/date_helper.rb:707:in
`datetime_select’

/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/helpers/date_helper.rb:707:in
`datetime_select’

app/views/usuarios/editar.html.erb:96:in
`_run_erb_47app47views47usuarios47editar46html46erb’

app/views/usuarios/editar.html.erb:8:in
`_run_erb_47app47views47usuarios47editar46html46erb’

/opt/local/bin/mongrel_rails:19:in `load’

/opt/local/bin/mongrel_rails:19

y lo más curioso del caso es que tampoco sale nada googleando:
datetime_select “wrong number of arguments (4 for 3)”

¿A vosotros os va bien el datetime_select en rails 2.1.1? ¿O está
deprecated y hay que usar algún sustituto???

s2


#2

Hola Fernando, te informo que el código que tienes funciona bien en
Rails 2.1 pues tengo un código exacto al tuyo y no me da error recuerda
que cuando tienes el erro wrong number of arguments (4 for 3) es por que
en tu tag tienes mas atributos de lo debidos, pero en tu caso esta bien,
si el código que envías es exactamente lo que tienes en tu app debe
funcionar!!! Saludos

Efectivamente, funciona bien en Rails 2.1… y mal en Rails 2.1.1. Al
menos en mi caso, es así…

s2


#3

Fernando C. wrote:

Hola, estoy pasando un código antiguo a una aplicación Rails 2.1.1, y me
encuentro con lo que parece ser un fallo de esta versión de rails al
tratar con datetime_select:

<% form_for(:usuario, :html => { :method => :post }) do |f| %>
<%= f.datetime_select :ultimo_acceso %>

wrong number of arguments (4 for 3)

Hola Fernando, te informo que el código que tienes funciona bien en
Rails 2.1 pues tengo un código exacto al tuyo y no me da error recuerda
que cuando tienes el erro wrong number of arguments (4 for 3) es por que
en tu tag tienes mas atributos de lo debidos, pero en tu caso esta bien,
si el código que envías es exactamente lo que tienes en tu app debe
funcionar!!! Saludos


#4

El problema está ya localizado: se trata del plugin l10n-simplified, que
“intercepta” el datetime_select, y al parecer no está adaptado a rails
2.1.1; he creado un proyecto nuevo y he ido añadiendo los plugins que
uso, y al añadir éste el datetime_select ha dejado de funcionar.

s2

Por cierto, la solución es ir al archivo localization_simplified.rb, y
cambiar
def datetime_select(object_name, method, options = {})
por
def datetime_select(object_name, method, options = {}, html_options =
{})

por si a alguien más le pasa…

s2


#5

Fernando C. wrote:

Hola, estoy pasando un código antiguo a una aplicación Rails 2.1.1, y me
encuentro con lo que parece ser un fallo de esta versión de rails al
tratar con datetime_select:

<% form_for(:usuario, :html => { :method => :post }) do |f| %>
<%= f.datetime_select :ultimo_acceso %>

wrong number of arguments (4 for 3)

/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/helpers/date_helper.rb:707:in
`datetime_select’

/opt/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/action_view/helpers/date_helper.rb:707:in
`datetime_select’

app/views/usuarios/editar.html.erb:96:in
`_run_erb_47app47views47usuarios47editar46html46erb’

app/views/usuarios/editar.html.erb:8:in
`_run_erb_47app47views47usuarios47editar46html46erb’

/opt/local/bin/mongrel_rails:19:in `load’

/opt/local/bin/mongrel_rails:19

y lo más curioso del caso es que tampoco sale nada googleando:
datetime_select “wrong number of arguments (4 for 3)”

¿A vosotros os va bien el datetime_select en rails 2.1.1? ¿O está
deprecated y hay que usar algún sustituto???

s2

El problema está ya localizado: se trata del plugin l10n-simplified, que
“intercepta” el datetime_select, y al parecer no está adaptado a rails
2.1.1; he creado un proyecto nuevo y he ido añadiendo los plugins que
uso, y al añadir éste el datetime_select ha dejado de funcionar.

s2


#6

Podrias mandarle un parche al autor del plugin. :wink:

Igualmente comentar que en vez de modificar el plugin es interasante
sobrescribir ese método desde nuestra aplicación. Creo que es más
limpio y puede evitarnos futuros dolores de cabeza si algun dia
decidimos actualizar el plugin.

On 21/10/2008, at 13:22, Fernando C.
<removed_email_address@domain.invalid