accepts_nested_attributes - ActiveRecord :: UnknownAttributeError - PullRequest
0 голосов
/ 05 мая 2018

У меня есть очень простая модель, в которой каждое событие имеет много форекс. Я пытаюсь создать вложенную форму для создания нового события с кучей форекс на ходу.

class Event < ActiveRecord::Base
  has_many :forexes
  accepts_nested_attributes_for :forexes

end


class Forex < ActiveRecord::Base
  belongs_to :event
end

Схема такая:

ActiveRecord::Schema.define(version: 20180505093823) do

  create_table "events", force: :cascade do |t|
    t.string   "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.string   "base"
  end

  create_table "forexes", force: :cascade do |t|
    t.string   "code"
    t.float    "rate"
    t.integer  "event_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  add_index "forexes", ["event_id"], name: "index_forexes_on_event_id"

end

А потом я попытался создать новые объекты, используя следующий код в консоли rails. Не удается.

Event.new( name: "11", base: "HKD", forexes_attributes: [ {code: "RMB", rate:1}, {code: "CNY",rate:2}])

Это отбрасывает меня назад с этой ошибкой.

ActiveRecord::UnknownAttributeError: unknown attribute 'forexes_attributes' for Event.

Я знаю, что это довольно простой вопрос. И я попробовал много разных способов после исследования в разных местах. Я не мог отладить это. Ценю твою помощь.

1 Ответ

0 голосов
/ 05 мая 2018

В вашем контроллере событий вам нужно включить forexes_attributes в метод event_params, как и по умолчанию

def event_params
  params.require(:event).permit(forexes_attributes: Forexes_attribute_names.map(&:to_sym).push(:_destroy))
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...