我正在尝试在Rails 5中构建一对一的关联,基本上,我只希望用户只连接到一个用户。
所以我希望能够在我的rails控制台中执行此操作:
User.first.relationship.new(:partner_id => 2)
能够设置和检索特定用户的合作伙伴。
我正在使用名为Relationship的连接模型。
class Relationship < ApplicationRecord
belongs_to :user
belongs_to :partner, :class_name => "User"
end
用户模型。
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable
has_one :relationship
has_one :partner, :through => :relationship
validates_presence_of :first_name, :last_name
end
我生成了这样的关系模型:rails g model Relationship user:references partner_id:integer
。
当我执行User.first.relationship.new()
时,它会在rails控制台中抛出NoMethodError: undefined method new for nil:NilClass
。
但是,当我将用户模型从has_one
更改为has_many
时:
has_many :relationships
has_many :partners, :through => :relationships
它有效,但我希望使用自引用关联只有一对一的关系。
我做错了什么?谢谢!
答案 0 :(得分:1)
尝试function logResults(json) {
const [one, two] = json;
if (one.error) {
throw new Error('error at logResults');
}
return [one, two]; // or just `json`?
}