好的,所以在安装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),我不明白我是如何让它工作的。
提前谢谢
答案 0 :(得分:1)
所以之前,你并没有真正使用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