我已阅读以下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。然后,在创建新用户时,我可能希望有一个可扩展的表单,允许用户在创建帐户时添加一个,两个,三个或二十个电子邮件。
怎么可以这样做?
答案 0 :(得分:1)
嵌套属性是做你想要实现的目标的方式。
结帐http://railscasts.com/episodes/196-nested-model-form-part-1
答案 1 :(得分:0)
您需要考虑使用嵌套表单,查看此gem,非常容易实现。它将允许用户根据需要添加多个电子邮件。