У меня есть рубиновое приложение с использованием Grape, и у него нет рельсов.ForbiddenAttributesError с Grape и ActiveRecord
class Article < ActiveRecord::Base
end
class API::Articles < Grape::API
post '/articles' do
article = Article.create(params[:article])
end
end
Article.create
дает ActiveModel::ForbiddenAttributesError:
Существует некоторая дискуссия об этом here, но я не понимаю. Я попытался это предложение:
post '/articles' do
article = Article.create(permitted_params[:article])
represent(article, env)
end
helpers do
def permitted_params
@permitted_params ||= declared(params, include_missing: false)
end
end
На этот раз @permitted_params
пуста, так атрибуты исчезли.
Я также пробовал обертывать хэш с ActionController::Parameters
, но это не удается с другими ошибками.
Что предлагается для решения проблемы ForbiddenAttributesError
, в Винограде?
Виноград использует драгоценный камень хэши для params
и their solution, чтобы включить драгоценный камень, называемый hashie_rails, но этот камень приносит все рельсы с ним, но я не хочу этого. Поэтому мне нужно решение ванили.
Если вы не хотите использовать драгоценный камень Hashie, просто преобразуйте ваши @permitted_params в хэш: '@permitted_params || = объявил (params, include_missing: false) .to_hash' –