为什么"新"方法会保存我的关系而不是仅仅初始化它

Tam*_*iev 1 ruby activerecord ruby-on-rails ruby-on-rails-3

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

@advisor = Advisor.includes(:profile).find(current_advisor_user.id)
@advisor.profile ||= AdvisorProfile.new
Run Code Online (Sandbox Code Playgroud)

当我加载该配置文件页面 - 它在数据库中为配置文件创建一个记录,但是我只是想初始化它所以它在我的表单中不是零.

jib*_*iel 5

我想你想要的 @advisor.build_profile

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

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

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