0

I have a User, Meeting, and Club Model.

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

A Club has_many :user_clubs, has_many :users, :through => :user_clubs, and has_many :meetings

A Meeting belongs_to :club, and has_many :users

The trouble I'm facing is creating a new meeting through the nested route: http://localhost:3000/clubs/1/meetings/new.

When I attempt to create the meeting I'm getting the validation error "Club must exist." I understand that this can be overridden because the belongs_to association is requiring Club. However, I should not need to override it - as EVERY meeting should belong to a club. I just don't know how to correctly solve the error.

My routes are:

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

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

My Meetings#new action looks like:

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

and Meetings#create:

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

My Meetings new template is using form_for(@meeting) do |f|. How do I pass the club that the validation requires to Meetings#create? The flow is: User show page clicks club > Club show page clicks button to create new meeting > Meetings#new page types in name, description, time and clicks create > Meetings#index page I'm unable to get past the Meetings#new page.

1 Answer 1

1

Solved. The answer was in my form_for. I needed to change it to:

<%= form_for [@club, @meeting] do |f| %> 
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.