簡體   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