【发布时间】:2022-06-28 00:10:35
【问题描述】:
希望你们一切都好
我正在创建一个测验应用程序,其中我有 3 个模型一个 question.rb、user.rb 和 result.rb
Question.rb
class Question < ApplicationRecord
validates :question, presence: true
validates :option1, presence: true
validates :option2, presence: true
validates :option3, presence: true
validates :option4, presence: true
validates :answer, presence: true
end
迁移的文件
class CreateQuestions < ActiveRecord::Migration[6.1]
def change
create_table :questions do |t|
t.text :question
t.text :option1
t.text :option2
t.text :option3
t.text :option4
t.text :answer
t.timestamps
end
end
end
result.rb
class CreateResults < ActiveRecord::Migration[6.1]
def change
create_table :results do |t|
t.text :user_choice
t.timestamps
end
end
end
question_id 和 User_id 也是该表中的外键。
结果控制器
class ResultController < ApplicationController
def create
@result=Result.create(user_choice: params[:user_choice],
question_id: params[:question_id],
user_id: current_user.id)
end
end
最后 查看/问题/索引
<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body ">
<!-- Nested Row within Card Body -->
<div class="row py-5">
<div class="p-5">
<div class="text-center">
<h1 class="h4 text-gray-900 mb-4 ">Multiple-Choice Questions</h1>
</div>
<%= form_with model: @result ,url: result_path do |f| %>
<% @questions.each do |question| %>
<div>
<%= f.hidden_field :question_id, value: question.id %>
<%= f.hidden_field :user_id, value: current_user.id %>
<p><%= question.question %></p>
<% choices = [question.option1, question.option2, question.option3, question.option4] %>
<% choices.each do |c| %>
<div>
<%= f.radio_button :"user_choice[#{question.id}]", c %>
<%= f.label :user_choice, c %>
</div>
<% end %>
</div>
<% end %>
<div class="sub"> <%= f.submit "Submit", class:"btn btn-primary" %></div>
<% end %>
<div class="para1"><%= link_to 'New Question', new_question_path,class:"btn btn-primary btn-user" %>
</div>
</div>
</div>
</div>
</div>
</div>
现在一切正常,用户选择正在保存,用户 ID 也在保存 current_user.id
现在的问题是 question_id 没有更新它总是显示最后一个问题的 id。在我的事业中它是 11。我不知道为什么它不存储已回答问题的 id。
如果有人在这方面帮助我,我将不胜感激。
【问题讨论】:
标签: ruby-on-rails