Rails中的一对一协会无法正常工作

时间:2018-03-21 14:14:22

标签: ruby-on-rails associations

我是Rails中的新手,无法让我的模特关系发挥作用,我也不知道原因。我已经尝试过多种方式并且遵循了许多不同的教程,但无法找到正确的方法。你知道我的代码有什么问题吗?我该怎么测试呢?

我有两个模型,其中包含has_one关联用户和个人资料。个人资料属于User。所以每次添加用户时,我都会添加一个配置文件。

这是用户模型的迁移文件

class CreateUsers < ActiveRecord::Migration[5.1]
  def change
    create_table :users do |t|
      t.string :email
      t.string :password_digest

      t.timestamps
    end
  end
end

这是个人资料模型的迁移文件

class CreateProfiles < ActiveRecord::Migration[5.1]
  def change

    drop_table :profiles
    create_table :profiles do |t|
      t.string :name
      t.string :lastname
      t.string :phone
      t.string :address
      t.string :city
      t.string :state
      t.string :country
      t.string :gender, :limit => 10
      t.string :zipcode
      t.references :users, foreign_key: true

      t.timestamps
    end
  end
end

模型简介

class Profile < ApplicationRecord
  belongs_to :user
end

模型用户

class User < ApplicationRecord
    has_secure_password
    has_one :profile
end

非常感谢!

1 个答案:

答案 0 :(得分:0)

我认为问题可能在于迁移。

public class ErrorController : Controller { public ActionResult Index() { var errGUID = (string)Session["test"]; ViewBag.ErrorMessage = errGUID; return View(); } } 属于Profile,因此在User迁移中您应该拥有:

create_profiles

t.references :user, foreign_key: true代替user)。

使用您的代码时,users模型应具有Profile字段{。}}。