Я новичок в Rails. У меня есть таблица с именем TeamMemberships
, которая имеет 2 внешних ключа: один для Users
и один для Teams
. Я хочу добавить элемент TeamMembership
в таблицу TeamMemberships
со страницы show.html.erb
для Teams
, чтобы внешний ключ Team
был Team
, который вызвал действие, и будет определен User
по форме. Когда я пытаюсь добавить TeamMembership
, страница перенаправляется, как и ожидалось, однако элемент таблицы не добавляется и сообщение об ошибке не отображается. Что может быть причиной этого? Вот мои маршруты:
Rails.application.routes.draw do
resources :instructors
get 'static_pages/home'
get 'static_pages/adminLanding'
resources :audiences
resources :comments
resources :scores
resources :projects
resources :team_memberships
resources :team_types
resources :teams
resources :users
Rails.application.routes.draw do
resources :teams do
resources :team_memberships
end
end
root 'static_pages#home'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
Вот ссылка со страницы teams/show.html.erb
:
<%= link_to 'Add a student', new_team_team_membership_path(@team.id) %>
Вот метод new
в контроллере TeamMemberships
:
def new
@team_membership = TeamMembership.new(team_id: params[:team_id])
@users = User.all
end
Вот файл team_memberships/new.html.erb
для формы:
<h1>New Team Membership</h1>
<%= form_for @team_membership do |f| %>
<%= f.select :user_id, options_for_select(@users.collect{ |student| [student.first_name + ' ' +student.last_name, student.id]}) %>
<%= f.submit %>
<% end %>
<%= link_to 'Back', team_memberships_path %>
Вот метод create
контроллера TeamMemberships
:
def create
@users = User.all
@team_membership = TeamMembership.new(team_membership_params)
respond_to do |format|
if @team_membership.save
format.html { redirect_to @team_membership, notice: 'Team membership was successfully created.' }
format.json { render :show, status: :created, location: @team_membership }
else
format.html { render :new }
format.json { render json: @team_membership.errors, status: :unprocessable_entity }
end
end
end
Спасибо!