好的,所以在安装strong_params之前,使用MyBook.create!
是可行的,但现在不行了。
这是我的代码
class AuthorsController < ApplicationController
def new
@author = user.authors.build
end
def create
@author = Author.new(author_params)
if @author.save
@book = MyBook.create!(:author_id => @author.id,
:user_id => @author.user_id)
)
else
render :new
end
end
我试过
@book = MyBook.create!(params.require(:my_book).permit(
:author_id => @author.id,
:user_id => @author.user_id)
)
但我得到了Required parameter missing: my_book
我做错了什么?我可以一个接一个地更新每个属性,但这似乎没有效率。我知道我不能批量分配受保护的属性,但如果不必在我的模型中分配属性(因为strong_params),我不知道如何才能实现这一点。
提前感谢
所以之前,您并没有真正使用params
@book = MyBook.create!(:author_id => @author.id,
:user_id => @author.user_id)
)
如果你以"批量分配"的方式使用params,它会看起来像:
@book = MyBook.create!(params[:book])
由于您自己提取id,所以更容易做到:
@book = MyBook.create! do |mybook|
mybook.author_id = @author.id
mybook.user_id = @author.user_id
end