希望你們一切都好。
我正在創建一個mcqs rails 應用程式。我已經創建了這個問題模型。
```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```
然后我創建一個結果模型,其中有這個。
```class CreateResults < ActiveRecord::Migration[6.1]
def change
create_table :results do |t|
t.text :user_choice
t.integer :q_id
t.integer :u_id
t.timestamps
end
end
end```
我在這個表中創建了 question_id 和 User_id 外鍵。
現在我想存盤 user_choice 將其與答案進行比較并向用戶顯示您輸入正確或錯誤答案的結果。但現在我無法做到這一點。我不知道現在該怎么辦。
如果有人在這方面幫助我,我將不勝感激。我對rails有點陌生。請幫助我被困在這里。
```class Result < ApplicationRecord
validates :user_choice, presence: true
belongs_to :user
belongs_to :question
end```
這是結果模型。
這是我的問題#index 視圖,我想將 user_choice 從中存盤到結果表中。
<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 |form|%>
<% @questions.each do |question| %>
<div id="<%= dom_id(question) %>">
<p><%= question.question %></p>
<% choices = [question.option1, question.option2, question.option3, question.option4] %>
<% choices.each do |c| %>
<div>
<%= radio_button_tag "guess_#{question.id}", c%>
<%= label_tag "guess_#{question.id}_#{c}", c %>
</div>
<% end %>
</div>
<% end %>
<div class="sub"> <%= button_to "Submit", result_path, 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>````
uj5u.com熱心網友回復:
根據您的表結構,您可以添加以下關聯
class Result < ApplicationRecord
validates :user_choice, presence: true
belongs_to :user, foreign_key: :u_id, class_name: 'User'
belongs_to :question, foreign_key: :q_id, class_name: 'Question'
end
然后你可以比較用戶的答案如下
def is_answer_correct?
question.answer == user_choice
end
我還建議將問題選項移到單獨的表格中。這將使其易于管理。您可以參考此SO 答案中添加的 DB 結構
查看表格
<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 do |form|%>
<% @questions.each do |question| %>
<div id="<%= dom_id(question) %>">
<%= f.hidden_field, :question_id, question.id %>
<p><%= question.question %></p>
<% choices = [question.option1, question.option2, question.option3, question.option4] %>
<% choices.each do |c| %>
<div>
<%= form.radio_button :user_choice, c %>
<%= form.label :user_choice, c %>
</div>
<% end %>
</div>
<% end %>
<div class="sub"> <%= form.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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/497368.html
上一篇:Rails,在CapybaraSystemtest中將測驗資料輸入到條帶元素中
下一篇:Rails渦輪增壓流
