Ruby on rails 未经允许的参数:联系\u请求
我试着跟随,因为它非常接近我正在尝试创造的东西。我目前正在使用Rails 4.2测试版。我对rails真的是个新手,所以我不确定我会错在哪里 控制器:Ruby on rails 未经允许的参数:联系\u请求,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我试着跟随,因为它非常接近我正在尝试创造的东西。我目前正在使用Rails 4.2测试版。我对rails真的是个新手,所以我不确定我会错在哪里 控制器: class UsersController < ApplicationController def new @user = User.new @user.contact_requests.build end def create @user = User.new(user_params) end
class UsersController < ApplicationController
def new
@user = User.new
@user.contact_requests.build
end
def create
@user = User.new(user_params)
end
private
def user_params
# strong_parameters, which requires us to tell Rails exactly which parameters
# we want to accept in our controllers
params.require(:user).permit(:first_name, :last_name, :email, :phone_number, contact_requests_attributes: [:message])
# params.require(:users).permit!
end
end
路线:
Rails.application.routes.draw do
root 'home#index'
match '/send_mail', to: "home#send_mail", via: "get"
get 'test', to: "users#new"
post 'test', to: "users#create"
不要忘记
contact\u requests
的id
属性,您需要修改user\u params
方法,请参见下文
params.require(:user).permit(:first_name, :last_name, :email, :phone_number, contact_requests_attributes: [:id, :message])
我已将id
属性添加到contact\u requests\u属性中
另外,您需要使用:user
而不是:users
,我已经在上面更正了
试试看 不要忘记
联系人请求的id
属性,您需要修改用户参数
方法,请参见下文
params.require(:user).permit(:first_name, :last_name, :email, :phone_number, contact_requests_attributes: [:id, :message])
我已将id
属性添加到contact\u requests\u属性中
另外,您需要使用:user
而不是:users
,我已经在上面更正了
试试看 您需要更改允许的参数
params.require(:user).permit(:first_name, :last_name, :email, :phone_number, contact_requests: {:id, :message})
您需要更改允许的参数
params.require(:user).permit(:first_name, :last_name, :email, :phone_number, contact_requests: {:id, :message})
嘿,您应该解决的第一件事是在require中使用单数,如:params.require(:user)
。如果您查看表单字段名称以及控制器作为参数接收的内容,您就会理解其中的原因。修改此内容并重试。Dude别管表单,将其作为(@user…
)的表单,您为用户实例创建了一个表单,该表单保存在@user中。@Octopus Paul感谢您的帮助和解释!我真的很感激!嘿,您应该修复的第一件事是在require中使用单数,如:params.require(:user)
。如果查看表单字段名称以及控制器作为参数接收到的内容,您将了解原因。请修改此字段,然后重试。请别管表单,将其作为表单\u保存(@user…
,您为用户实例创建了一个表单,该表单保存在@user中。@Octopus Paul感谢您的帮助和解释!我非常感谢!使用:user
,而不是:users
,检查我编辑的答案我做了您建议的更改,但我现在有一个路由问题,我添加了:url=>“/test”
到我的表单中,但我现在收到另一个错误使用:user
而不是:users
,检查我编辑的回答我做了您建议的更改,但我现在有一个路由问题我在我的表单中添加了:url=>“/test”
,但我现在收到另一个错误
params.require(:user).permit(:first_name, :last_name, :email, :phone_number, contact_requests: {:id, :message})