В приложении rails я создаю ассоциации has_many между командой и игроками, с консоли я могу сохранить данные, но из браузера я не могу сохранить данные.Значения откатываются и показывают ошибку head no content
в журнале.
Очевидно, что при передаче значения из new.html.erb в PlayersContoller произошла ошибка.У меня нет подтверждения в модели игрока.Я новичок, каждое предложение является жемчужиной, пожалуйста, помогите мне с ценным руководством
// rout.rb
Rails.application.routes.draw do
resources :teams do
collection do
get :load_users
end
end
devise_for :users, controllers: { registrations: 'users/registrations' }
resources :user_roles
resources :roles
resources :users
resources :players
root 'home#home'
end
// журнал сервера
Started GET "/players/new?team_id=11" for 127.0.0.1 at 2019-02-28 05:11:28 +0530
Processing by PlayersController#new as HTML
Parameters: {"team_id"=>"11"}
User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ /home/sushmitha/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.2/lib/active_record/log_subscriber.rb:98
Team Load (0.2ms) SELECT "teams".* FROM "teams" WHERE "teams"."id" = ? LIMIT ? [["id", 11], ["LIMIT", 1]]
↳ app/controllers/players_controller.rb:4
Rendering players/new.html.erb within layouts/application
User Load (0.5ms) SELECT "users".* FROM "users" LIMIT ? OFFSET ? [["LIMIT", 2], ["OFFSET", 0]]
↳ app/views/players/new.html.erb:15
(0.3ms) SELECT COUNT(*) FROM "users"
↳ app/views/players/new.html.erb:34
/home/sushmitha/.rvm/gems/ruby-2.5.1/gems/will_paginate-bootstrap-1.0.1/lib/bootstrap_pagination/bootstrap_renderer.rb:11: warning: constant ::Fixnum is deprecated
Rendered players/new.html.erb within layouts/application (71.0ms)
Rendered layouts/_header.html.erb (0.9ms)
Rendered layouts/_footer.html.erb (0.3ms)
Completed 200 OK in 162ms (Views: 118.0ms | ActiveRecord: 2.7ms)
Started POST "/players" for 127.0.0.1 at 2019-02-28 05:11:31 +0530
Processing by PlayersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"kyrK8LmWKA8E8lBsbQTVi2nVdjCvUkbm/tRjk7aLnRy8TlK93E1bBscmVsG//LC5JrxDBdVvyVMybIGTsf2+vQ==", "player"=>{"team_id"=>"11"}, "players"=>{"user_id"=>["1"]}, "commit"=>"Create Player"}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? ORDER BY "users"."id" ASC LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ /home/sushmitha/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.2/lib/active_record/log_subscriber.rb:98
Team Load (0.2ms) SELECT "teams".* FROM "teams" WHERE "teams"."id" = ? LIMIT ? [["id", 11], ["LIMIT", 1]]
↳ app/controllers/players_controller.rb:14
(0.1ms) begin transaction
↳ app/controllers/players_controller.rb:16
(0.1ms) rollback transaction
↳ app/controllers/players_controller.rb:16
No template found for PlayersController#create, rendering head :no_content
Completed 204 No Content in 79ms (ActiveRecord: 0.8ms)
//user.rb
class User < ApplicationRecord
has_many :user_roles
has_many :roles, through: :user_roles, :dependent => :destroy
# belongs_to :team ,optional: true, foreign_key: :captain_id
end
// player.rb
class Player < ApplicationRecord
belongs_to :team
belongs_to :user
end
// team.rb
class Team < ApplicationRecord
has_many :users, dependent: :destroy
belongs_to :captain, class_name: 'User'
has_many :players, dependent: :destroy
validates :ground_name, presence:true
validates :team_name, presence:true
validates :captain_id, presence:true, uniqueness:true
end
// new.html.erb
<div class="col-md-6 col-md-offset-3">
<div class="container">
<br>
<h3>Add players to team <%= @team.team_name %></h3>
<%= form_for @player do |f| %>
<table>
<tbody>
<%= f.hidden_field :team_id, value: @team.id %>
<tr>
<th>Player Id</th>
<th>Player Name</th>
<th>Select</th>
</tr>
<% @user.each do |x| %>
<tr>
<td><%= x.id %></td>
<td><%= x.full_name %></td>
<td><%= f.check_box_tag 'players[user_id][]',x.id %></td>
</tr>
<% end %>
<tr>
<td>
<%= f.submit nil, class: 'btn btn-primary' %>
<%= link_to t('.cancel', default:t("helpers.links.cancel")),
root_path, class:'btn btn-default' %>
</td>
</tr>
</tbody>
</table>
<% end %>
</div>
</div>
<%= will_paginate @user,renderer: BootstrapPagination::Rails, previous_label:"old",next_label: "new", inner_window:1, outer_window:1 %>
// контроллер игрока
class PlayersController < ApplicationController
def new
@player= Player.new
@team = Team.find(params[:team_id])
@user = User.all.paginate(page: params[:page], per_page:2)
end
def create
@team = Team.find(params[:player][:team_id])
params[:player].each do |user_id|
@team.players.create(user_id: params[:user_id])
end
end
private
def player_params
params.require(:player).permit(:team_id,:user_id)
end
end
В форме есть цикл, который выдает user_id.Как извлечь информацию о пользователе из модели пользователя и присвоить ее форме, на самом деле создает путаницу для меня.