我正在建立一个网站,每个用户可以在其中浏览几篇论文并回答每篇论文的一些问题。
我希望用户只能回答一次特定论文的问题(即,对于同一篇论文,他不能多次提交表格)。
但是,我不确定该怎么做。我当时想在模型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
答案 0 :(得分:0)
在为用户user
生成新表单时,请从user
输入信息(可能是一个选择下拉列表),以标识他要提交给哪个paper
。然后检查用户是否已经提交了表单。如果他已经提交了表单,请向他显示一条友好的错误消息,否则请为该paper
生成表单。