Rails Nested Form - Создание новой встречи из клуба - PullRequest
0 голосов
/ 03 марта 2019

У меня есть модель User, Meeting и Club.

A User has_many: user_clubs, has_many: club,: through =>: user_clubs.

A Club has_many: user_clubs, has_many: пользователи,: through =>: user_clubs, и has_many: встречи

A Meeting принадлежат_to: клуб и has_many: пользователи

Проблема, с которой я сталкиваюсь, заключается в создании новой встречи по вложенному маршруту: http://localhost:3000/clubs/1/meetings/new.

Когда я пытаюсь создать встречу, я получаю ошибку проверки «Клуб должен существовать».Я понимаю, что это может быть отменено, потому что ассоциация принадлежат к клубу.Однако мне не нужно переопределять это, поскольку КАЖДАЯ встреча должна принадлежать клубу.Я просто не знаю, как правильно исправить ошибку.

Мои маршруты:

resources :users
resources :clubs do
  resources :meetings, only: [:show, :index, :new, :create, :edit, :update]
end

resources :meetings, only: [:index, :show, :new, :create, :edit, :update]

Мои встречи # новое действие выглядит как:

def new
  @club = Club.find(params[:club_id])
  @meeting = Meeting.new
end

и Встречи # создать:

def create
  binding.pry
  @meeting = Meeting.new(meeting_params)
  if @meeting.save
    binding.pry
    redirect_to club_path, notice: "Meeting was succesfully created."
  else
    render :new
  end
end

Шаблон Мои встречи new использует form_for(@meeting) do |f|.Как передать club, который требуется для проверки Meetings # create?Поток: Страница пользователя Клуб кликов > Страница клубного шоу Кнопка кликов для создания нового собрания > Встречи # Новая страница ввод имени, описания, времени и создания кликов > Индексная страница Meetings # Я не могу пройти мимо новой страницы Meetings #.

1 Ответ

0 голосов
/ 04 марта 2019

решаемая.Ответ был у меня form_for.Мне нужно было изменить его на:

<%= form_for [@club, @meeting] do |f| %> 
...