好的,问题是尝试从控制器渲染表单以创建新条目..为此我调用脚手架创建附带的默认表单 我试图这样做:
<%= render :partial => 'contactos/form' %>
我得到以下错误
undefined method 'model_name' for NilClass:Class
有没有办法只从视图本身渲染?
如果没有...我应该将哪些参数添加到控制器?
现在我只有以下代码:
Class DisplayController < ApplicationController
def index
@contactos = Contacto.all
end
end
*这是视图控制器,而不是我的脚手架中具有创建更新和编辑功能的视图控制器
好的,我做了一项非常大的研究,但没有答案可以解决我的问题。 (这是我第一次提出问题,提前抱歉我可以犯下的任何错误)
答案 0 :(得分:6)
问题是您在联系表单中使用的变量不存在。您在索引操作中创建的唯一变量是所有联系人的数组,但表单需要单个联系人的单个实例。
因为您正在建立新联系人,所以您必须在动作索引中执行以下操作:
@contact = Contact.new
答案 1 :(得分:2)
通常,当我们在视图中使用实例变量但它是nil时会发生这种情况。
例如:在我们使用的新用户创建表单中,
form_for @user do |f|
....
end
和@user未在控制器操作中初始化,从我们呈现表单的位置,这可能发生。
答案 2 :(得分:0)
您需要确保在渲染部分之前定义了部分表单中使用的参数。
你也不需要局部,你可以放:
<%= render 'contactos/form' %>