を受け入れていない私は、ユーザーが質問を入力質問と回答のウェブサイトを構築していますが、私は、ユーザー入力を取得し、データベースに対してそれを比較、答えが正しい場合、私はの値をとりますしかし、私は、ユーザー入力がモデルを通過していない問題が生じています、と私は@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を作成します。コントローラを提出しますか?
は私が間違ってそれに近づいたり、私はそれがより効率的であると私は必要なものを達成するために動作します使用することができ、レール方式があり、この間違っているのでしょうか?
私の現在のコードは、常にfalseを返し、users_inputはデータベースに挿入されていません。
誰もが任意のアイデアがありますか? – user7391609