ruby-on-rails - 只提交一次表格 - 简单表格
问题描述
我正在建立一个网站,每个用户都可以在其中查看几篇论文并回答每篇论文的一些问题。
我希望用户只能一次回答特定论文的问题(即他不能为同一篇论文多次提交表单)。
但是,我不知道该怎么做。我正在考虑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
解决方案
当您为用户生成新表单时user
,从user
(可能是选择下拉列表)获取输入以确定paper
他要提交到哪个表单。然后检查用户是否已经提交了表单。如果他已经提交了表单,则向他显示一条友好的错误消息,否则为该表单生成paper
。
推荐阅读
- matlab - 我可以在 Matlab 中存储的矩阵的最大长度是多少
- c# - websocket-sharp-customheaders 发送标头
- javascript - 我需要在特定行拆分一个二维数组并将它们变成两个新的二维数组(nodejs)
- javascript - 将搜索数据导出为 PDF/打印
- java - 插入表时如何访问值?
- javascript - 通过 selectize.js 设置 select 的初始值?
- c++ - 在 C++ 中修改字符串的 BigO 时间复杂度是多少?
- yii2 - 如何在 yii2 模型中添加错误函数
- django - 如何在添加表单 django 期间从管理视图中删除字段
- sql-server - 识别 AWS RDS 上的 SQL Server 死锁