Строка не добавлена ​​в таблицу, но ошибка отсутствует - PullRequest
0 голосов
/ 01 декабря 2019

Я новичок в 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

Спасибо!

1 Ответ

0 голосов
/ 01 декабря 2019

Вы не отображаете ошибки в представлении, добавьте это к своему new.html.erb и стилизуйте его позже в соответствии с вашими потребностями

<% if @team_membership.errors.any? %>
  <ul>
    <% @team_membership.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
  </ul>
<% end %>

Попробуйте один раз!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...