Rails控制器没有创建新记录

时间:2015-05-01 16:21:15

标签: ruby-on-rails ruby

我有一个定义

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"来分离每个元素。

1 个答案:

答案 0 :(得分:3)

通常,您需要params.require(:person).permit(:firstname, :lastname, :job, :loc)之类的内容,然后让您的Person模型验证所需的属性。

至于您的问题,我的猜测是,如果您检查params,您会看到类似{person: {firstname: "first", lastname: "last", job: 1, loc: "somewhere"}}的内容,这就是您Person.new提出错误的原因。