Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 问题及;回答-不接受用户输入_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

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
希望这是可行的,如果认为正确,请投票


干杯

有人有什么想法吗?有人有什么想法吗?我对你的问题投了高票,这样你就有足够的分数来对答案投高票了!将在几分钟内尝试此操作,并会让您知道它是否有效。当然!让我知道!我已经对你的问题进行了投票,这样你就有足够的分数对答案进行投票!将在几分钟内尝试此操作,并会让您知道它是否有效。当然!让我知道!