В моей базе данных есть таблица с именем place_events
Мне нужно сохранить два типа мест в этой таблице, эти типы: один main
и несколько alternate
(необязательно)
Мой взгляд
Моя таблица:
create_table "place_events", force: :cascade do |t|
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "event_place_id", limit: 4
t.string "event_place_type", limit: 255
t.integer "event_id", limit: 4
end
Я пытаюсь сохранить свои данные по различным отношениям, чтобы позже я мог их получить
if !params[:precint].nil?
precint_hash = JSON.parse(params[:precint])
precint_hash = precint_hash.except('id', 'description', '$$hashKey', 'logo')
precint = PrecintEvent.new(precint_hash)
@event.build_place_event(event_place: precint)
end
if params[:alternate_precints]
precints_hash = JSON.parse(params[:alternate_precints])
precints_hash.each do |precint|
precint = precint.except('id', 'description', '$$hashKey', 'logo')
precint = PrecintEvent.new(precint)
@event.alternate_place_events.build(event_place: precint)
end
end
этот код работает и сохраняет данные в моей таблице place_events
но моя проблема в том, когда я хочу получить их, получить принципал и получить альтернативы
Я пробую эти отношения в своеммодель event.rb
:
has_one :place_event
has_many :alternate_place_events, class_name: PlaceEvent.name, foreign_key: 'event_id'
но это не работает
Это правильно:
@event.place_event
#<PlaceEvent id: 8, created_at: "2019-06-14 00:27:50", updated_at: "2019-06-14 00:27:50", event_place_id: 8, event_place_type: "PrecintEvent", city_event_id: nil, event_id: 15>
Это правильно: я не должен получать данные с идентификаторомномер 8
@event.alternate_place_events
#<ActiveRecord::Associations::CollectionProxy [
#<PlaceEvent id: 8, created_at: "2019-06-14 00:27:50", updated_at: "2019-06-14 00:27:50", event_place_id: 8, event_place_type: "PrecintEvent", city_event_id: nil, event_id: 15>,
#<PlaceEvent id: 9, created_at: "2019-06-14 00:27:50", updated_at: "2019-06-14 00:27:50", event_place_id: 9, event_place_type: "PrecintEvent", city_event_id: nil, event_id: 15>,
#<PlaceEvent id: 10, created_at: "2019-06-14 00:27:50", updated_at: "2019-06-14 00:27:50", event_place_id: 10, event_place_type: "PrecintEvent", city_event_id: nil, event_id: 15>]>
Как я мог это сделать?Возможно ли это сделать?