5

Ok, el problema es tratar de renderizar un formulario desde un controlador para crear una nueva entrada ... Para eso estoy llamando al formulario predeterminado que viene con la creación del andamio I ' m tratando de hacerlo de esta manera:Renderizando un formulario desde otro controlador en Ruby on Rails 3

<%= render :partial => 'contactos/form' %> 

Y estoy consiguiendo el error siguiente

undefined method 'model_name' for NilClass:Class

¿hay alguna manera de simplemente la representación de la vista en sí?

Si no hay ... ¿Qué parámetros debo agregar al controlador?

En este momento sólo tengo siguiente código:

Class DisplayController < ApplicationController 
    def index 
     @contactos = Contacto.all 
    end 
end 

* Este es el controlador de vista, no el uno con la actualización y edición de crear funciones de mi andamio

Ok, he hecho una una gran investigación pero ninguna respuesta puede solucionar mi problema. (Esta es la primera vez que pregunto algo, lo siento de antemano por cualquier error que pueda cometer)

Respuesta

6

El problema es que la variable que está utilizando en el formulario para su contacto no existe. La única variable que creó en la acción de índice es una matriz de todos los contactos, pero el formulario necesita una sola instancia de un solo contacto.

Debido a que usted está haciendo un nuevo contacto, que tiene que hacer algo como esto en el índice de la acción:

@contact = Contact.new 
2

Generalmente, esto ocurre cuando utilizamos una variable de instancia en la vista pero es nula.

Por ejemplo: en una nueva forma de creación de usuarios que utilizamos,

form_for @user do |f| 
.... 
end 

y @user no se inicializa en la acción del controlador, desde donde se hacen a la forma, esto puede suceder.

0

que necesita para asegurarse de que el parámetro utilizado en forma parcial se define antes de dibujar la parcial.

También usted no necesita el parcial, que sólo puede poner:

<%= render 'contactos/form' %> 
Cuestiones relacionadas