"✓", "authenticity_to-6ren">
gpt4 book ai didi

ruby-on-rails - ActiveModel::ForbiddenAttributesError Rails 4

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:26 25 4
gpt4 key购买 nike

我在 Rails 4 中遇到 ForbiddenAttributesError

下面是我的请求参数

Request parameters  
{"utf8"=>"✓", "authenticity_token"=>"q+s0otvtcblkkN3r0DoJZ8rZveSDb75uI9I9UDxvWFA=", "product"=>{"name"=>"Product test", "description"=>"asdadasdasdsd", "product_url"=>"", "image_id"=>"", "request_info"=>"0", "email_notification"=>"0", "emails"=>"", "user_id"=>"1", "booth_ids"=>["", "1"]}, "commit"=>"Create Product", "action"=>"create", "controller"=>"products"}

下面是我的强参数

def product_params
params.require(:product).permit(:name, :description, :product_url, :image_id, :request_info, :email_notification, :emails, :user_id)
end

我在这里遗漏了什么吗?

class Product < ActiveRecord::Base
resourcify

belongs_to :user
has_and_belongs_to_many :tags
has_and_belongs_to_many :booths

has_one :uploaded_file, as: :imageable, dependent: :destroy

validates :name, :description, presence: true
validates :user, associated: true, presence: true
end

最佳答案

看来您正在使用 protected_attributes gem。你的 Gemfile 里有吗?如果是这样,请将其从您的 Gemfile 中删除,这样您就可以改用 Strong Parameters 方法将属性列入白名单。如果您更喜欢使用 protected_attributes,则必须在产品模型中使用 attr_accessible :name, :description, etc...。我建议你使用强参数,因为它更灵活。您可以轻松地执行某些操作,例如使用强参数设置不同的白名单属性。

ActiveModel::ForbiddenAttributesError 仅当您在 Rails 4 中拥有 protected_attributes gem 或您使用的是 Rails 3 及更早版本时才会出现。强参数不会引发该错误。您将看到为什么这不是由强参数引发的错误的另一个证据是它被命名为 ActiveModel 错误。强参数是 ActionController 模块的一部分,而不是 ActiveModel。

希望对您有所帮助!

关于ruby-on-rails - ActiveModel::ForbiddenAttributesError Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20604123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com