我有一个定义
def create
@person = Person.new(params.require(:firstname, :lastname, :job).permit(loc))
@person.save
redirect_to @person
当我尝试保存新人时,我收到以下错误:
ArgumentError in PeopleController#create
wrong number of arguments (5 for 1)
我编码的方式有问题吗?我也尝试用一个单独的" .require"来分离每个元素。
答案 0 :(得分:3)
通常,您需要params.require(:person).permit(:firstname, :lastname, :job, :loc)
之类的内容,然后让您的Person
模型验证所需的属性。
至于您的问题,我的猜测是,如果您检查params
,您会看到类似{person: {firstname: "first", lastname: "last", job: 1, loc: "somewhere"}}
的内容,这就是您Person.new
提出错误的原因。