Goliath + Grape + Active Record 4.2 + Active Record Migrationsを使用してボイラープレート Web アプリケーションを開発しています。ここに私の移行ファイルがあります
# db/migrate/20150519063210_create_albums.rb
class CreateAlbums < ActiveRecord::Migration
def change
create_table :albums do |t|
t.string :name
t.string :artist
t.string :genre
t.date :published_at
end
end
end
そして私のモデル
# app/models/Album
class Album < ActiveRecord::Base
end
そしてぶどうAPI
class ApiV1 < Grape::API
version 'v1', using: :path
format :json
resource 'albums' do
get '/' do
Album.all
end
post '/' do
Album.create(params[:album]) # <-- raises ActiveModel::ForbiddenAttributesError
end
end
end
いくつかのパラメーターを指定して呼び出すPOST /v1/albums/
と、アプリケーションは常にActiveModel::ForbiddenAttributesError
. ActiveRecord がActionController::Parameters
引数になりたいようですが、Grape はそれを与えますHashie::Mash
。
env['params']
a から aHash
に変換する単純な Rack ミドルウェアを実装してからActionController::Parameters
使用しようとしましたが、Grape はヘルパー メソッドが呼び出さGoliath::Rack::Params
れたときにサニタイズするだけです。params
また、Grape ミドルウェアを実装して使用して同じことを試みたところ、同じ結果が得られました。
これに関する解決策はありますか、それとも ActiveRecord 3 にダウングレードする必要がありますか?