繁体   English   中英

simple_form中的嵌套形式

[英]Nested form in simple_form

我对RoR真的很陌生,我正在尝试使用simple_form创建嵌套表单,但我一直看到出现此错误:

Forms#show中的NoMethodError

nil:NilClass的未定义方法“ model_name”

我看过这些链接,但无济于事。 我还考虑过我是否有错别字,或者在使用单/复数时犯了一个错误。

这是我的_form.html.erb代码,该错误似乎来自第一行:

<%= simple_form_for([@form, @customformd]) do |f| %>
  <%= f.input :legislation, label: 'Which Act?' %>
  <%= f.input :provision, label: 'Which provision?', collection: [ "Act A", "Act B", "Act C" ] %>
  <%= f.input :RB, label: 'Referring Body', collection: [ "A", "B", "C", "D", "E", "F"] %>
  <%= f.button :submit %>
<% end %>

这是我的customformd.rb代码:

class customformd < ApplicationRecord
  belongs_to :form
end

这是我的customformds_controller代码:

class CustomformdsController < ApplicationController
  def create
    @form = Form.find(params[:form_id])
    @cformftcd = @form.customformds.create(customformds_params)
    redirect_to form_path(@form)
  end

  private
  def customformd_params
    params.require(:customformd).permit(:RB, :legislation, :provision)
  end
end

这是show.html.erb代码中令人反感的部分的代码片段:

<%= render @form.customformd %>
<h5>Add Custom Form D Specific Info:</h5>
<%= render 'customformds/form' %>

提前非常感谢您!

Forms#show中的NoMethodError

nil:NilClass的未定义方法“ model_name”

您呈现_form部分中forms/show.html.erb ,所以一定要确保你已经定义@form@customformdforms#show方法如下图所示

#form_controller.rb
def show
  @form = Form.find(params[:id])
  @customformd = Customformd.new
end

此外, 类别名称应以大写字母开头 (即, customformd应该为Customformd

class Customformd < ApplicationRecord
  belongs_to :form
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM