Отправить форму только один раз - простая форма - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю веб-сайт, на котором каждый пользователь может просмотреть несколько статей и ответить на несколько вопросов по каждой статье.

Я хочу, чтобы пользователь мог отвечать на вопросы конкретной статьи только один раз (т. Е. Онне может отправить форму более одного раза для одного и того же документа).

Однако я не уверен, как это сделать.Я думал добавить логическое поле submitted в мою схему для модели question, но это мало помогает, потому что, когда пользователь отправляет новую форму, значение всегда равно false (и, таким образом, он может отправить больше, чемодна форма для одной и той же статьи).

questions.new.html.erb

<%= simple_form_for [@user, @project, @paper, @question], url: project_paper_questions_path do |f| %>
        <%= f.input :question_2, :collection =>["N/A", "No - 0", "Partially - 0.5", "Yes - 1"], label: "question 2" %>
        <%= f.input :question_3, :collection =>["N/A", "No - 0", "Partially - 0.5", "Yes - 1"], label: " question 3%>
        <%= f.input :question_4, :collection =>["N/A", "No - 0", "Partially - 0.5", "Yes - 1"],label: "question 4 " %>

        <div class="form-actions">
            <%= f.button :submit, "Send your review" %>
       </div>
<% end %>

question.rb

class Question < ApplicationRecord
  belongs_to :user
  belongs_to :paper
  belongs_to :project
end

1 Ответ

0 голосов
/ 13 февраля 2019

Когда вы создаете новую форму для пользователя user, возьмите ввод из user (возможно, выпадающий список), чтобы определить, какой paper он хочет отправить.Затем проверьте, отправил ли пользователь уже форму или нет.Если он уже отправил форму, покажите ему дружественное сообщение об ошибке, в противном случае создайте форму для этого paper.

...