首页 > 解决方案 > 只提交一次表格 - 简单表格

问题描述

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

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

但是,我不知道该怎么做。我正在考虑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 %>

问题.rb

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

标签: ruby-on-railssimple-form

解决方案


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


推荐阅读