我正在建立一個問題和答案網站,用戶輸入一個問題,我把用戶輸入並與數據庫進行比較,如果答案正確,我將問題並將其添加到記分牌,但我有一個問題,用戶輸入沒有通過模型傳遞,並且當我設置@user_input = params[:content]
時,它始終返回null,我相信這是因爲我正在使用命名空間/嵌套楷模。問題與答案 - 用戶輸入不被接受
的行動計劃:
Get the current answer from the database for the current_question_id, and set as a varaiable
Check Users input against the answer in the database
if question_id & user_submitted_answer exists in database
create record in submission's table with status == correct
else
create record in submissions table with status == Incorrect
型號:
會員/問題
class Members::Question < ActiveRecord::Base
belongs_to :category
belongs_to :point
belongs_to :event
has_many :submissions
has_one :answer
end
提交
條class Submission < ActiveRecord::Base
belongs_to :question
belongs_to :member
end
路線:
Rails.application.routes.draw do
#Root Routes
root 'home#index'
get 'home/index'
get 'home/about'
mount RailsAdmin::Engine => '/eriadmin', as: 'rails_admin'
#Devise Controller
devise_for :members
#Members namepsace
get '/members/', to: 'members/dashboard#index', as: 'members_dashboard', only: [:show]
resources :answers
namespace :members do
resources :questions, only: [:index,:show] do
resources :submissions
end
end
end
提交控制器 創建方法
@answer_check = Answer.where("question_id = ? AND content = ?",set_members_question, set_user_submission)
if @answer_check.present?
flash.alert = 'Answer There'
@submission = @members_question.submissions.create(params[:submission].permit(:question_id))
@submission.member_id = current_member.id
@submission.content = Submission.find_by(params[:content])
else
flash.alert = 'NOPE NOT There'
@submission = @members_question.submissions.create(params[:submission].permit(:question_id))
@submission.content = "Incorrect"
@submission.member_id = current_member.id
end
def set_user_submission
@members_question = Submission.find(params[:content])
end
的user_submitted_answer:內容沒有被從形式傳遞的 「問題/顯示」 進入提交控制器?
我這樣做是錯誤的,接近它錯誤或是否有一個rails方法,我可以使用更有效率,並努力實現我所需要的?
我當前的代碼總是返回false,並且users_input未被插入到數據庫中。
任何人有任何想法? – user7391609