Я занимаюсь RoR годами, но это мой первый проект с Mongo (также мой первый проект, основанный на api). У меня тяжелое время с ассоциациями HABTM, и я подозреваю, что это связано с параметрами, но я не уверен, что еще попробовать.Mongoid 6, Rails 5, HABTM «unpermitted parmeter»
Вот что я получил:
class Project
include Mongoid::Document
field :name, type: String
field :start_date, type: Date
field :target_date, type: Date
has_and_belongs_to_many :users
end
class User
include Mongoid::Document
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:jwt_authenticatable, jwt_revocation_strategy: JWTBlacklist
field :email, type: String
field :_id, type: String, default: ->{ email }
{ ... devise stuff ...}
has_and_belongs_to_many :projects
end
В мой контроллер проектов, у меня есть это для параметров:
def project_params
params.permit(:id, :name, :start_date, :target_date, :description, user_ids: [])
end
И да, я тоже пытался делать {user_ids: [] }.
Когда я использую Postman, чтобы сделать запрос URL PUT, чтобы попытаться добавить пользователей в проект, я получаю сообщение об ошибке «unpermitted parameter». Но ... Я разрешаю этот параметр, правильно?
Я как бы схожу с ума, потому что не знаю, есть ли у меня проблема Монго, проблема с Rails 5 или проблема API. Все остальные звонки работают нормально.
Started PUT "/rapi/projects/3" for 127.0.0.1 at 2017-02-15 22:55:10 -0500
Overwriting existing field _id in class JWTBlacklist.
Overwriting existing field _id in class User.
Processing by Api::V1::ProjectsController#update as JSON
Parameters: {"user_ids"=>"[email protected]", "id"=>"3"}
MONGODB | localhost:27017 | anthem.find | STARTED | {"find"=>"users", "filter"=>{"_id"=>"[email protected]"}}
MONGODB | localhost:27017 | anthem.find | SUCCEEDED | 0.000363703s
Overwriting existing field _id in class Project.
MONGODB | localhost:27017 | anthem.find | STARTED | {"find"=>"projects", "filter"=>{"_id"=>"3"}}
MONGODB | localhost:27017 | anthem.find | SUCCEEDED | 0.000244022s
Unpermitted parameters: user_ids, format
Overwriting existing field _id in class Release.
Completed 204 No Content in 20ms
Буду признателен за любые идеи о том, что еще я могу попробовать.
Ах! Моя проблема не была проблемой рельсов, я не знал, как использовать Postman. Спасибо за ваш ответ, который решил! :) – nilatti