0

Я новичок в rails, и сейчас я пытаюсь разработать приложение на основе API с помощью Rails 5, на одном из моих контроллеров у меня есть функция для фильтрации позволяют параметры, как такRails Newby: Сильные параметры в Rails 5 не позволяют указать указанный параметр Through - HABTM

def provider_params 
    params.require(:provider).permit(:name, :phone, :email, :website, :address, :provider_id, :bio, :specialty_ids => []) 
end 

Затем посылка из Paw я не заметил, что аргументы, которые не являются атрибутами таблицы не включены в provider_params, параметр я должен получить массив, который определяется отношением HABTM.

Это как мои модели выглядят как

specialty.rb

class Specialty < ApplicationRecord 
    has_and_belongs_to_many :providers 
end 

provider.rb

class Provider < ApplicationRecord 
    has_and_belongs_to_many :specialties 
end 

И это, как присоединиться к таблице был креа Тэд с помощью миграции

class CreateProvidersSpecialties < ActiveRecord::Migration[5.0] 
    def change 
    create_table :providers_specialties, :id => false do |t| 
     t.integer :provider_id 
     t.integer :specialty_id 
    end 

    add_index :providers_specialties, :provider_id 
    add_index :providers_specialties, :specialty_id 
    end 
end 

JSON Я отправляю

{ 
    "name": "the name", 
    "specialty_ids": [ 
    1, 
    2 
    ] 
} 

Так как я уже говорил, массив specialty_ids не кажется, не идет до конца, и даже если это так, я подозреваю, есть еще что-то еще мне нужно сделать для того, чтобы рельсы, чтобы вставить содержание specialty_ids в ProvidersSpecialties Таблица

ответ

0

Таким образом, проблема была окончательно решена путем удаления вызова requir из метода provider_params, так как я не обертывал json-payload ключом provider. По-видимому, после того, как вы добавите вызов require(:key), вы сможете добавлять только параметры, принадлежащие модели, что является странным, поскольку ошибка возникает, когда ключ отсутствует, что было с моей полезной нагрузкой, без ключа provider.

 Смежные вопросы

  • Нет связанных вопросов^_^