Rails关联:belongs_to has_many混乱

时间:2016-09-02 13:28:25

标签: ruby-on-rails ruby ruby-on-rails-3

我已阅读以下tutorial并找到了好奇的一句话:

注意创建函数的编写方式是在创建@post之前有@comment

您可以看到支持控制器代码:

Class CommentsController < ApplicationController
  ----
  def create
    @post = Post.find(current_post)
    @comment = @post.comments.create(post_params)  ## 'Essential stuff'
    respond_to do |format|
      if @comment.save
        format.html { redirect_to action: :index, notice: 'Comment was successfully created.' }
        format.json { render :show, status: :created, location: @comment }
      else
        format.html { render :new }
        format.json { render json: @comment.errors, status: :unprocessable_entity }
      end 
    end
  end
  ----
end

确实,&#34; current_post&#34;暗示该帖子是在评论之前创建的。

但如果我想同时创建两者呢?例如,假设我的USER has_many EMAILS,并且每个EMAIL belongs_to都是USER。然后,在创建新用户时,我可能希望有一个可扩展的表单,允许用户在创建帐户时添加一个,两个,三个或二十个电子邮件。

怎么可以这样做?

2 个答案:

答案 0 :(得分:1)

嵌套属性是做你想要实现的目标的方式。

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

答案 1 :(得分:0)

您需要考虑使用嵌套表单,查看此gem,非常容易实现。它将允许用户根据需要添加多个电子邮件。