Ruby on Rails:build_model做了什么?

Tim*_*ils 2 database ruby-on-rails nested-forms

我有一个用户和个人资料模型,我使用相同的表单来填充它们.在我的控制器中,我有一行:@ user.build_profile

我想知道这条线做了什么.用户和配置文件之间的关系是一对一的,配置文件属于用户.

我还有一个名为image的新模型,我想使用嵌套属性与用户建立一对多的关系.在我在用户coltroller中的新动作中,我应该使用类似于上面那样的行吗?@ user.build_image

完整的新动作:

def new         
    @user = User.new
    @user.build_profile


    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @user }
    end
  end
Run Code Online (Sandbox Code Playgroud)

Ian*_*mit 7

build_profile将创建一个空的配置文件对象(属于@user).稍后在创建操作中,您将调用

@user.save 
Run Code Online (Sandbox Code Playgroud)

这将把配置文件(以及用户)保存到数据库中.

http://guides.rubyonrails.org/association_basics.html- 解释它

编辑:对于你要打电话的has_many关系

@user.images.build 
Run Code Online (Sandbox Code Playgroud)

创建一个新的图像模型.这个轨道演员超越了它

http://railscasts.com/episodes/196-nested-model-form-part-1