0
ユーザーとアカウントの2つのデータベーステーブルがあります。新しいユーザーを作成するときに、ログインに使用するプライマリ電子メールアドレスがUsersテーブルに格納されます。私がやりたいことは、Accountsテーブルにプライマリ電子メールアドレスのコピーを保存することです。このテーブルはそのユーザーの電子メールアドレスを格納するために使用されます。Ruby on Rails:1つのレコードを作成した後に2つのテーブルにデータを格納する方法は?
私は私のusers_controller
に次のように試してみました:
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def edit
@user = User.find(params[:id])
end
def create
@user = User.new(user_params)
if @user.save
session[:user_id] = @user.id
@account = Account.new(email: params[:primaryemailaddress], user_id: session[:user_id])
redirect_to @user
else
render 'new'
end
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to @user
else
render 'edit'
end
end
def destroy
@user = User.find(params[:id])
@user.destroy
redirect_to users_path
end
private
def user_params
params.require(:user).permit(:title, :firstname, :surname, :housenumber, :street, :city, :postcode, :organisation, :primaryemailaddress, :password)
end
end
そして、私のUser
モデルでは、以下の項目を
class User < ActiveRecord::Base
has_many :accounts
accepts_nested_attributes_for :accounts
validates :primaryemailaddress, presence: true
has_secure_password
end
だから、あなたはusers_controller
でcreate
方法で見ることができるように、私はユーザーが登録フォームに入力したプライマリ電子メールアドレスを使用して、アカウントテーブルに新しいレコードを作成しようとしています。
誰かが間違っている場所を教えてもらえますか?
すぐに働いた、ありがとうございました! –