Я пытаюсь добавить поставщиков в список пациентов. Например, у пациентов может быть много поставщиков. Это не работает. Мой код может быть неправильным, но любая помощь будет оценена.
<% @providers.each do |provider| %>
<div class="item" data-email="<%=provider.role.user.email%>" data-name="<%=provider.role.user.first_name%> <%=provider.role.user.last_name%>">
<div class="d-inline-block">
<p class="name"><%= provider.role.user.first_name %><%= " " + provider.role.user.middle_name if provider.role.user.middle_name %><%= " " + provider.role.user.last_name %></p>
<p class="name"><span>Professional Title: </span><%= provider.professional_title if provider.professional_title %></p>
</div>
<div class="d-inline-block float-right">
<%= link_to patient_add_provider_path(@patient, provider_join: @patient.id, provider_id: provider.id), method: :post, :data => {:confirm => 'Are you sure you want to add this site?'} do %> ####THIS IS WHAT CURRENTLY IS NOT WORKING(link_to)
<button class="btn-submit">Add</button>
</div>
</div><!--item-->
<% end %>
Вот метод, который у меня есть внутри моего файла Patient_controller.rb
def add_provider
flash[:modal]
@patient = current_user.current_role.roleable
@provider = Provider.find(params[:provider_id])
@provider_join = Provider_join.where(
:provider_id => params[:provider_id]).first_or_create do |provider_join|
provider_join.provider = params[:provider_id]
end
@provider_join.soft_delete = false
if @provider_join.save
flash[:success] = "You have successfully added a physician to your list"
redirect_back(fallback_location: root_path)
else
end
end
и вот мой файл схемы
create_table "provider_joins", id: false, force: :cascade do |t|
t.bigint "provider_id"
t.bigint "patient_id"
t.boolean "soft_delete", default: false
t.index ["patient_id"], name: "index_provider_joins_on_patient_id"
t.index ["provider_id"], name: "index_provider_joins_on_provider_id"
end
и, наконец, что не менее важно, вот ошибка, которую я получаю в консоли
ActionView::Template::Error (undefined method `id' for nil:NilClass):
6: </div>
7:
8: <div class="d-inline-block float-right">
9: <%= link_to patient_add_provider_path(@patient, provider_join: @patient.id, provider_id: provider.id), method: :post, :data => {:confirm => 'Are you sure you want to add this Physician?'} do %>
10: <button class="btn-submit">Add</button>
11: <% end %>
12: