Ruby on rails 问题及;回答-不接受用户输入
我正在建立一个问答网站,用户在其中输入一个问题,我获取用户输入并与数据库进行比较,如果答案正确,我获取问题的值并将其添加到记分板,但是我遇到一个问题,用户输入没有通过模型传递,当我设置Ruby on rails 问题及;回答-不接受用户输入,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在建立一个问答网站,用户在其中输入一个问题,我获取用户输入并与数据库进行比较,如果答案正确,我获取问题的值并将其添加到记分板,但是我遇到一个问题,用户输入没有通过模型传递,当我设置@user\u input=params[:content]时,它总是返回null,我相信这是因为我使用的是名称空间/嵌套模型 行动计划: Get the current answer from the database for the current_question_id, and set as a varai
@user\u 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
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
型号:
成员/问题
class Members::Question < ActiveRecord::Base
belongs_to :category
belongs_to :point
belongs_to :event
has_many :submissions
has_one :answer
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
用户提交回答:内容没有从“问题/展示”中的表单传递到提交控制器
我是否做得不对,处理得不对,还是有一种rails方法可以更有效地实现我所需要的
我当前的代码总是返回false,并且用户的输入没有插入到数据库中。从我看到的情况来看,您是在两种情况下创建提交,然后分配内容和成员id,而不是保存它 请记住,create方法初始化对象并保存它,之后需要再次保存您指定的任何值。因此,我对您的代码进行了如下调整:初始化提交对象,然后添加内容和成员id,最后保存它
if @answer_check.present?
flash.alert = 'Answer There'
@submission = @members_question.submissions.new(params[:submission].permit(:question_id))
@submission.member_id = current_member.id
@submission.content = Submission.find_by(params[:content])
@submission.save
else
flash.alert = 'NOPE NOT There'
@submission = @members_question.submissions.new(params[:submission].permit(:question_id))
@submission.content = "Incorrect"
@submission.member_id = current_member.id
@submission.save
end
希望这是可行的,如果认为正确,请投票
干杯 据我所见,您在这两种情况下都创建提交,然后分配内容和成员id,而不保存它 请记住,create方法初始化对象并保存它,之后需要再次保存您指定的任何值。因此,我对您的代码进行了如下调整:初始化提交对象,然后添加内容和成员id,最后保存它
if @answer_check.present?
flash.alert = 'Answer There'
@submission = @members_question.submissions.new(params[:submission].permit(:question_id))
@submission.member_id = current_member.id
@submission.content = Submission.find_by(params[:content])
@submission.save
else
flash.alert = 'NOPE NOT There'
@submission = @members_question.submissions.new(params[:submission].permit(:question_id))
@submission.content = "Incorrect"
@submission.member_id = current_member.id
@submission.save
end
希望这是可行的,如果认为正确,请投票
干杯 有人有什么想法吗?有人有什么想法吗?我对你的问题投了高票,这样你就有足够的分数来对答案投高票了!将在几分钟内尝试此操作,并会让您知道它是否有效。当然!让我知道!我已经对你的问题进行了投票,这样你就有足够的分数对答案进行投票!将在几分钟内尝试此操作,并会让您知道它是否有效。当然!让我知道!