Ruby on rails 未定义的局部变量或方法“maindata”形式';在rails 4中
我的两个模型 Maindata.rbRuby 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
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。我还更新了我的问题,在表单代码中增加了一些细节。基本上我做了同样的事情,我更新了问题中的表单代码。还是一样的错误。