0
で1人のユーザのための複数のアドレスを作成します。私は現在、私のRailsで以下の設定が5アプリケーション持っFormtastic
class User < ApplicationRecord
has_many :addresses
accepts_nested_attributes_for :addresses
end
class Address < ApplicationRecord
belongs_to :user
end
対応するコントローラは、次のようになります。
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to users_path
else
render 'new', notice: "User could not be created"
end
end
private
def user_params
params.require(:user).permit(
:first_name, :last_name, :email, ...
)
end
end
各ユーザーが持つことになっていますユーザー作成時に設定する必要がある複数のAddresses
(請求や配送など)。 (formtasticで作られた)形は、この(アウトテイク)のようになります。
= semantic_form_for @user do |user|
= user.input :first_name
= user.semantic_fields_for Address.new do |shipping_address|
= shipping_address.input :city
= shipping_address.input :usage,
as: :hidden,
input_html: { value: 'shipping' }
= user.semantic_fields_for Address.new do |billing_address|
= billing_address.input :city
= billing_address.input :usage,
as: :hidden,
input_html: { value: 'billing' }
問題は、後者のアドレスはそう一つだけが作成され、サイトのパラメータに存在することOFCれます。
同じユーザーに対して複数のアドレスを作成するにはどうすればよいですか?