У меня есть приложение ruby, использующее Grape, и у него нет рельсов.
class Article < ActiveRecord::Base
end
class API::Articles < Grape::API
post '/articles' do
article = Article.create(params[:article])
end
end
Article.create
дает ActiveModel::ForbiddenAttributesError:
Об этом есть обсуждение здесь, но я этого не понимаю. Я пробовал это предложение:
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
в Grape на данный момент?
Grape использует hashie gem для params
и их решение для этого состоит в том, чтобы включить гем под названием hashie_rails, но этот гем приносит с собой все рельсы, а мне ничего из этого не нужно. Поэтому мне нужен ванильный раствор.
@permitted_params ||= declared(params, include_missing: false).to_hash
- person Yaro Holodiuk   schedule 13.05.2015