1つのフォームを使用して異なるテーブルにデータを保存しようとしています.2つのモデルがあります。AとBIはAフォームを使用してBの属性を保存しようとしています。モデルは次のとおりです。rorの異なるテーブルにデータを保存できません
class A < ApplicationRecord
has_one :B
accepts_nested_attributes_for :B
end
マイBモデルは次のとおりです。
class B < ApplicationRecord
belongs_to :A
end
マイAコントローラは次のとおりです。
class AController < ApplicationController
def index
@a = A.all
end
def new
@a = A.new
end
def create
@a = A.new(a_params)
@a.b.build
if @a.save
redirect_to a_path
else
render 'new'
end
end
private
def a_params
params.require(:a).permit(:name, :age, :address :b => [:fname, :phone])
end
end
私new.html.erbです:
<%= form_for(:a, url: a_path) do |f| %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name%>
</div>
<div class="field">
<%= f.label :age %>
<%= f.text_field :age%>
</div>
<div class="field">
<%= f.label :address %>
<%= f.text_field :address%>
</div>
<%= f.fields_for :b do |f| %>
<p>
<%= f.label :fname, "father name" %><br />
<%= f.text_field :fname %>
</p>
<p>
<%= f.label :phone, "phone" %><br />
<%= f.text_field :phone %>
</p>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
私はテーブルに格納されている入力の両方tables.i.e..theデータにデータを格納することができませんが、Bテーブルに格納することができませんでした。
私の答えを確認してください、それは動作しているかどうか –
このレポコードを確認してください。https://github.com/chaudharyprakash/nested_attributes –