Не знаю, как сохранить форму вопроса, которая будет иметь 2 идентификатора, идентификатор события и идентификатор пользователя
User.rb
class User < ApplicationRecord
has_many :questions
has_many :answers
end
Event.rb
class Event < ApplicationRecord
has_many :questions, dependent: :destroy
accepts_nested_attributes_for :questions
end
Question.rb
class Question < ApplicationRecord
belongs_to :user
belongs_to :event
has_many :answers, dependent: :destroy
accepts_nested_attributes_for :answers
end
Answer.rb
class Answer < ApplicationRecord
belongs_to :user
belongs_to :question
scope :sorted, ->{ order(created_at: :asc) }
end
questions_controller.rb
def new
@question = current_user.questions.build
end
def create
@question = Question.new(question_params)
@question["user_id"] = current_user.id
respond_to do |format|
if @question.save
format.html { redirect_to @question, notice: 'Question was successfully created.' }
format.json { render :show, status: :created, location: @question }
else
format.html { render :new }
format.json { render json: @question.errors, status: :unprocessable_entity }
end
end
end
У меня есть стандартная форма, созданная с помощью скаффолда,но я не могу собрать воедино то, что мне не хватает из моих ограниченных знаний и опыта в рельсах о том, как получить каждый вопрос, который задает пользователь, для связи с конкретным созданным событием и показать, какой пользователь создал этот конкретный вопрос (я бы предположил, что каждый вопросзапись будет нуждаться в столбце user_id и в столбце event_id)
<%= form_with(model: question, local: true) do |form| %>
<%= form.label :body %>
<%= form.rich_text_area :body %>
<%= form.submit 'Create Question' %>
<% end %>
Обновлено для ошибки:
Когда я пытаюсь создать вопрос, для каждой записи требуется event_id
(у события много вопросов) и user_id
(я хочу показать, кто создал этот вопрос).
Правильно ли настроены мои модели и контроллеры?Когда я пытаюсь создать вопрос для события, возникает ошибка «Событие должно существовать»
Обновлен с помощью ERD pic (Не уверен, что я должен просто иметь пользователей или разделиться на создателей и пользователей)
ERD после прочтения о последнем обновлении Я начал читать больше о моделировании данных и придумал этот ERD ... Я все еще не очень уверен в достижении 3NF и настройке отношений, и какпереведите его на модели рельсов, но было бы замечательно иметь комментарии к моему ERD, чтобы я мог учиться.
Создатель создает события, к которым могут присоединиться пользователи.Создатель создает вопросы, на которые пользователи могут оставлять ответы.Каждое событие имеет много вопросов, и на каждый вопрос может быть много ответов.