ActiveModel::ForbiddenAttributesError是Rails中的一个错误,它发生在尝试传递未允许的参数时。这个错误通常发生在表单提交或使用update_attributes方法时。
解决这个问题的一种常见方法是使用Strong Parameters,它是Rails 4中引入的一种参数过滤机制。
以下是使用Strong Parameters解决ActiveModel::ForbiddenAttributesError的代码示例:
private
def model_params
params.require(:model).permit(:attribute1, :attribute2, :attribute3)
end
在这个示例中,我们假设参数模型是"model",你需要根据你的模型名称进行相应的更改。permit方法用于指定允许的参数列表。
def create
@model = Model.new(model_params)
# ...
end
在这个示例中,我们使用model_params方法过滤了参数,并将过滤后的参数传递给Model的构造函数。
这样,当尝试传递未允许的参数时,将不再抛出ActiveModel::ForbiddenAttributesError错误。只有在permit方法中指定的参数才会被接受。
请注意,Strong Parameters机制仅适用于Rails 4及更高版本。如果你使用的是Rails 3或更低版本,可以考虑使用另一种参数过滤机制,例如attr_accessible。