0

良い一日。

データベース (PostgeSQL) に「ユーザー」と「フォルダー」の 2 つのテーブルがあります。フォルダはbelongs_to :user、ユーザーhas_many :foldersです。ユーザーが必要です。彼のアカウントを作成すると、フォルダーテーブルにフォルダーが1つ自動的に作成されますname: "Default", id: 1, user_id: current_user.id。私が正しく理解しているように、createメソッドを編集する必要がありますusers_controller

これは私のuser.rb

# == Schema Information
#
# Table name: users
#
#  id              :integer          not null, primary key
#  name            :string(255)
#  email           :string(255)
#  created_at      :datetime         not null
#  updated_at      :datetime         not null
#  password_digest :string(255)
#  remember_token  :string(255)
#  admin           :boolean          default(FALSE)
#

class User < ActiveRecord::Base
  attr_accessible :name, :email, :password, :password_confirmation
  has_secure_password
  has_many :folders, dependent: :destroy

  before_save { email.downcase! }
  before_save :create_remember_token

  validates :name, presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false }
  validates :password, length: { minimum: 6 }
  validates :password_confirmation, presence: true

  private

  def create_remember_token
    self.remember_token = SecureRandom.urlsafe_base64
  end
end

これはfolder.rb

# == Schema Information
#
# Table name: folders
#
#  id         :integer          not null, primary key
#  name       :string(255)
#  user_id    :integer
#  created_at :datetime         not null
#  updated_at :datetime         not null
#

class Folder < ActiveRecord::Base
  attr_accessible :name
  belongs_to :user
  has_many :bookmarks, dependent: :destroy

  validates :user_id, presence: true
  validates :name, presence: true
end

そして、これはからのcreate方法ですusers_controller.rb

def create
    @user = User.new(params[:user])
    if @user.save
      sign_in @user
      redirect_to @user
      flash[:success] = "Welcome to Timio Bookmarks!"
    else
      if signed_in?
        redirect_to root_path
      else
        render 'new'
      end
    end
  end

ご協力いただきありがとうございます!

4

1 に答える 1