ActionMailer con Rails 2.0.2 (Nil object)

Saludos a la comunidad.

Llevo poco con esto de ruby, pero tengo amplia experiencia en
programación. Estoy utilizando Ruby 1.8.6 y Rails 2.0.2, el entorno es
Eclipse con Radrails.

Siguiendo esta guía:

he intentado crear un formulario para enviarlo por mail. Sin embargo he
fracasado estrepitosamente >_<

Me pasan un par de cosas curiosas:

1- No me deja utilizar <%= start_form_tag :action=> “send_mail” %>
<%= end_form_tag %>

me dicen que son ‘deprecated’, y me insta a utilizar <%= form_tag>

Bueno, sustituyo el start_form_tag por el form_tag y elimino el
end_form_tag. Eso no parece dar muchos problemas, pero no estoy seguro
de si será causante de algún problema.

2- Al pulsar el botón de envío, me da el siguiente error:

NoMethodError in InicioController#send_mail

donde InicioController es el controlador principal que he creado, y el
método es tal y como se describía en la guía:

def send_mail
Contact::deliver_contact_email(@params[:email])
end

En el log se puede leer:

Parameters: {“authenticity_token”=>“xxxx”, “action”=>“send_mail”,
“controller”=>“inicio”, “email”=>{“name”=>“aaa”, “body”=>“aaa”,
“subject”=>“aaa”, “address”=>“aaa”}}

NoMethodError (You have a nil object when you didn’t expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]):


He buscado temas aquí en la búsqueda, pero no he encontrado solución.
Espero que puedan echarme un cable, mientras seguiré dándole vueltas a
ver si lo soluciono.

Gracias y un saludo

¿En serio que nadie puede echarme una mano? O_o

Sigue esta guia.

http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer

Un saludo,

Francesc

Inicio es simplemente un controlador con una vista que tiene un enlace
al formulario en si.

Aquí te pongo el código de la vista ‘contacto.rhtml’:

<%= form_tag :action=> "send_mail"%> Name: <%= text_field "email", "name", :size => 30 %> Email Address: <%= text_field "email", "address", :size => 30 %> Subject: <%= text_field "email", "subject", :size => 30 %> Body: <%= text_area "email", "body", :rows => 8, :cols => 30 %>

Gracias por el tutorial. Aún me siento muy novato en RoR, estoy haciendo
más programas simples, a ver si le cojo la dinámica al MVC.

Hola Pablo, antes que nada he de decir que el artículo que escribí en su
dia
es para Rails 1.2.x, de ahí que tengas que cambiar la manera de declarar
el
formulario (tengo pendiente actualizarlo a rails 2)
Puedes poner el código de la vista del formulario? como has creado
Inicio,
con scaffold o simplemente es un controlador?

2008/5/14 Francesc E. [email protected]:

Tenía el mismo problema, hasta que vi este hilo. Le quité la arroba en
params[:email] y funcionó excelente.

Gracias.

Emili Parreño wrote:

Está bien, revisa que en el modelo Contact tienes el método
contact_email,
que es el que procesa el mail i lo envia.
PD: no hace falta la arroba en params[:email], no es una variable de
instancia

El día 15 de mayo de 2008 9:19, Pablo Benigno <
[email protected]> escribió:

He actualizado el post que publique en su día, no me habia dado cuenta
hasta
ahora del error.

El día 20 de mayo de 2008 7:11, Jose Rafael C. <
[email protected]> escribió:

Está bien, revisa que en el modelo Contact tienes el método
contact_email,
que es el que procesa el mail i lo envia.
PD: no hace falta la arroba en params[:email], no es una variable de
instancia

El día 15 de mayo de 2008 9:19, Pablo Benigno <
[email protected]> escribió:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs