1

我有一个与配置文件模型有 has_one 关系的顾问模型,在我的控制器中我有一个配置文件页面,其中包含以下代码:

@advisor = Advisor.includes(:profile).find(current_advisor_user.id)
@advisor.profile ||= AdvisorProfile.new

当我加载该配置文件页面时 - 它在数据库中为配置文件创建一条记录,但是我只想初始化它,因此它在我的表单中不是 nil。

4

2 回答 2

5

我想你想要@advisor.build_profile

http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_one

association=(associate) — 分配关联对象,提取主键,将其设置为外键,并保存关联对象

build_association(attributes = {}) — 返回已用属性实例化并通过外键链接到该对象但尚未保存的关联类型的新对象。

于 2012-04-18T14:09:51.913 回答
2

尝试这个,

@advisor.build_profile

它将返回“已用属性实例化并通过外键链接到该对象但尚未保存的关联类型的新对象”。看到这个

于 2012-04-18T14:09:37.990 回答