У меня есть модель User, которой для данной роли необходимо создать в таблице student_representings запись идентификаторов некоторых пользователей, которую я отправляю рядом с тем, который создается, однако я не достигаю того, что он создан правильно выкидывает следующую ошибку:
Could not find all StudentRepresentings with 'id': (12, 13) (found 0 results, but was looking for 2). Could not find StudentRepresentings with ids 12, 13.
User.rb
class User < ApplicationRecord
#Reprsentantes y Estudiantes
has_many :students, :class_name => 'StudentRepresenting', :foreign_key => :student_id
has_many :representings, :class_name => 'StudentRepresenting', :foreign_key => :representing_id
end
StudentRepresenting.rb
class StudentRepresenting < ApplicationRecord
belongs_to :student, :class_name => 'User', :foreign_key => :student_id
belongs_to :representing, :class_name => 'User', :foreign_key => :representing_id
end
Часть представления, в которой я ввожу идентификаторы представителей, которые будут связаны с пользователем, которого я создаю
<div class="col-sm-6 mb-3 mb-sm-0" id="representantes_div">
<!-- <input type="text" class="form-control form-control-user" id="exampleFirstName" placeholder="First Name"> -->
<%= hidden_field_tag "user[representing_ids][]", nil %>
<label>Representantes (Si es Estudiante, seleccione representantes) </label>
<br>
<%= select_tag "user[representing_ids][]", options_from_collection_for_select(Role.find_by_name('Representante').users, "id", "name"), :multiple => true, :size => 2, include_blank: 'Seleccione el Representante', class: 'form-control' %>
</div>
user_controller.rb
def create
@user = User.new(user_params)
if @user.save
flash[:success] = "El usuario ha sido creado exitosamente"
redirect_to admin_users_path
else
flash.now[:danger] = @user.errors.full_messages
render 'new'
end
end
private
def user_params
params.require(:user).permit(
:name, :lastname, :dni, :birthdate, :address, :email, :password, :password_confirmation, role_ids: [], representing_ids: []
)
end
А в параметрах они посылают
Parameters: {"utf8"=>"✓", "authenticity_token"=>"KenzI+IlOoPuGpE8arSTmXMPz+f4lWcWkQ65HMxZbSTePKwySdpfSzA2wcRkgdlW36RWutzfdTT8FSFlmeleow==", "user"=>{"name"=>"Joe2", "lastname"=>"Smith2", "dni"=>"12345678910101010", "email"=>"joe_s2@email.com", "birthdate"=>"2019-05-15", "address"=>"Direccion Joe", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "role_ids"=>["", "2"], "representing_ids"=>["", "12", "13"]}, "commit"=>"Aceptar"}
Я хотел бы знать, что я что-то упустил или я делаю это неправильно. Спасибо.