rails 4 modelname_params不存在

时间:2013-07-25 14:17:58

标签: ruby-on-rails-4

我正在尝试在Rails 4和Ruby 2中创建一个联系表单。我添加了一个模型并使用DB迁移它,然后我创建了表单等,但是这段代码出错了。

@newSupport = Support.new(support_params)
AdminMailer.contact_email(@newSupport.name, @newSupport.email, @newSupport.subject, @newSupport.message).deliver

Rails调试器说:

undefined local variable or method `support_params' for #<MainController:0x007f9f8a0dcb28>

为什么我的support_params未定义?我在哪里可以定义它?我没有脚手架,但是当我脚手架时,我看到我们可以通过“modelname_params”轻松地将表单值与控制器中的变量链接起来,但在这种情况下它是未定义的。

感谢阅读。

1 个答案:

答案 0 :(得分:2)

希望您使用strong_parameters(http://weblog.rubyonrails.org/2012/3/21/strong-parameters/)来清理控制器中的params。

不确定为什么它是未定义的,但它应该在控制器中定义为私有方法。

private

#assuming you're using params[:support]
def support_params
  params.require(:support).permit(:attributes, :you, :want, :to, :allow)
end