以前有人遇到过此错误吗?我已经上网了,找不到太多信息,也许我没有正确呈现JSON?
缺少模板答案/结果,带有{:locale => [:en] 、: formats => [:html] 、: variants => [] 、: handlers => [:raw,:erb, :html,:builder,:ruby,:coffee,:jbuilder]}。在以下位置搜索:*“ / Users / Minhaj / Desktop / my_survey / my_survey / app / views” *“ /Users/Minhaj/.rvm/gems/ruby-2.4.1/gems/devise-4.5.0/app/views”
这是代码。如果有错误,将帮助您修复错误。
def create
@answer = current_survey.answers.create(question_id: question, choice_id: choice)
redirect_to question_survey_path(current_survey)
end
def results
@choices = choices_hash
@results = questions.map do |question|
{
question.question => CountChoicesService.call(question.id)
}
end
respond_to do |format|
format.html { render :nothing => true, :status => 204 }
format.json { render json: @results }
end
end
private
def question
@question ||= params[:question]
end
def choice
@choice ||= params[:choice]
end
def choices
@choices ||= Array.wrap(Choice.all)
end
def choices_hash
choices_hash = {}
choices.each { |choice| choices_hash[choice.id] = choice.choice }
choices_hash
end
def questions
@questions ||= Array.wrap(Question.all)
end
end
我非常感谢您的帮助。
答案 0 :(得分:0)
这是它的外观,控制器名称为复数
在您的控制器目录下,您应该有这个
# app/controller/answers_controller.rb
class AnswersController < ApplicationController
def results
end
end
现在在views目录中,view名称空间应该与控制器名称相同。
# app/views/answers/results.html.erb
<h1>Check if this works</h1>
routes.rb
resources :answers do
collection/member do
get :results
end
end
答案 1 :(得分:-1)
您的问题是您没有回来。除非您返回,否则Rails会呈现该操作的关联模板。尝试将.no-scroll .scroll-content{
overflow: hidden;
}
呼叫包装在render
中。
旁注,为什么要使用Array.wrap()? ActiveRecord的return()
方法类似于数组。它们等待执行查询,直到您实际尝试对其进行迭代为止,然后它们就像一个数组一样工作。您不需要将它们设置为数组。如果发现有问题,可以致电all
。
不过,关于活动记录记录集合要注意的一件事,如果从其“数组”中删除任何内容,它将实际上从数据库中删除,这可能是您想要的,也可能不是。