Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的局部变量或方法“maindata”形式';在rails 4中_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 未定义的局部变量或方法“maindata”形式';在rails 4中

Ruby on rails 未定义的局部变量或方法“maindata”形式';在rails 4中,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我的两个模型 Maindata.rb has_many :applications, :dependent => :destroy, :autosave => true accepts_nested_attributes_for :applications Application.rb belongs_to :maindata accepts_nested_attributes_for :maindata 在保存主数据的形式中,我也将应用程序渲染为部分 <%= form_f

我的两个模型

Maindata.rb

has_many :applications, :dependent => :destroy, :autosave => true
accepts_nested_attributes_for :applications
Application.rb

belongs_to :maindata
accepts_nested_attributes_for :maindata
在保存主数据的形式中,我也将应用程序渲染为部分

<%= form_for @main_data do |maindata_form| %>
  <% 3.times { @maindata.applications.build } %>  
  <%= maindata_form.fields_for :applications do |builder| %>                   
    <%= render 'application', maindata_form: builder %>    
  <% end %>
<% end %>

和应用程序部分

      <div>
        <%= maindata_form.label :uni_id, "University" %> ***
        <%= maindata_form.collection_select :uni_id, @unis, :id, :bezeichnung, {:include_blank => true} %>
      </div>

***
真}%>
当我加载表单时,我在星号标记行处得到错误

未定义的局部变量或方法“maindata\u form”#


这是语法错误还是我遗漏了什么?

我假设您正在尝试从模型创建表单。在这种情况下,您应该:

首先:在控制器方法@main_data=Maindata.new中分配变量

第二:此变量将其链接到表单,例如:

<%= form_for @main_data do |f| %>
<div>
<%= f.label :uni_id, "University" %> ***
<%= f.collection_select :uni_id, @unis, :id, :bezeichnung, {:include_blank => true} %>
</div>
<% end %>

***
真}%>

您应该使用:render和:locals参数调用render:

<%= render partial: 'application', locals: { maindata_form: builder } %> 


您是否希望在某个地方定义
主数据表单
?您是否在控制器中将其定义为局部变量?如果是这样的话,那么它将不会传递到视图中,请改用实例变量。我在新操作中定义了@main_data。我还更新了我的问题,在表单代码中增加了一些细节。基本上我做了同样的事情,我更新了问题中的表单代码。还是一样的错误。