Заранее извиняюсь, если название этого поста неясно, у меня возникли трудности с объяснением возникшей проблемы.У меня есть приложение, которое позволяет пользователю создавать цели.Я пытаюсь создать модель сотрудничества, чтобы пользователи могли делиться своими целями друг с другом.Для этого я создал модель Collaboration, которая принадлежит модели User and Goal и хранит goal_id и user_id для представления доступа пользователей к другим целям.
Я создал форму в Goal # show, которая позволяет пользователю вводить адрес электронной почты пользователя, с которым он хотел бы поделиться.Я воспользуюсь этим электронным письмом, возьму user_id из связанной записи и создаю запись в записи Collaboration.У меня возникают проблемы при переходе от получения электронной почты пользователя к получению идентификатора и передаче его в качестве параметра.Код размещен ниже.
CollaborationsController.rb
class CollaborationsController < ApplicationController
def create
@goal = Goal.find(params[:goal_id])
@user = User.find_by(email: params[:email])
#@user=User.find(params[:email])
if @user
@collaboration = @goal.collaborations.create(collaboration_params)
if @collaboration.save
flash[:notice] = "User successfully added to goal."
else
flash[:error] = "There was a problem adding user. Please try again."
end
else
flash[:error] = "Sorry that wasn't a valid username. Please try again."
end
redirect_to goal_path(@goal)
end
def collaboration_params
params.require(:collaboration).permit(:user_id, :goal_id)
end
end
partnership / _form.html.erb
<%= form_with(model: [ @goal, @goal.collaborations.build ], local: true) do |form| %>
<p>
<%= form.label :email %>
<%= form.text_field :email %>
</p>
<p>
<%= form.submit %>
<p>
<% end %>
Данные формы из инструментов разработчика:
utf8: ✓
authenticity_token: RXa9u10cLdw1FK29hOly33wWDN+dDd5NTtvZ/yYbKfMJ6RhHw+nV8/OgiFbQ+raRcNzbbWItCct7lv+A3CmINw==
collaboration[email]: [actualemailofuser]
commit: Create Collaboration
адрес электронной почты отправлен и обработан.Как мне получить от поиска записи пользователя с этим электронным письмом до получения user_id из этой записи и отправки его в качестве параметра?