只提交一次表格-简单表格

时间:2019-02-13 17:10:41

标签: ruby-on-rails simple-form

我正在建立一个网站,每个用户可以在其中浏览几篇论文并回答每篇论文的一些问题。

我希望用户只能回答一次特定论文的问题(即,对于同一篇论文,他不能多次提交表格)。

但是,我不确定该怎么做。我当时想在模型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 :(得分:0)

在为用户user生成新表单时,请从user输入信息(可能是一个选择下拉列表),以标识他要提交给哪个paper。然后检查用户是否已经提交了表单。如果他已经提交了表单,请向他显示一条友好的错误消息,否则请为该paper生成表单。