当我按以下方式使用form_tag
时,会出现此错误:
AbstractController :: ActionNotFound位于/ quizzes / [thatever_quiz_id]
对于QuizzesController找不到操作“ thatever_quiz_id”
我的代码如下:
erb文件
<%= form_tag action: :add_questions do %>
<%= collection_select(:quiz, :id, Quiz.where.not(id: params[:id]), :name, :id, prompt: 'Select Quiz') %>
<%= text_field_tag(:input_quiz_questions, 'Question ids') %>
<%= submit_tag "Add" %>
<% end %>
因此,我在QuizController
中有一个名为add_questions
的方法,该方法从另一个测验中选择一个问题并将其添加到当前测验中。
def add_questions
id = params[:id]
required_quiz_id = params[:quiz][:id].to_i #taken from collection_select
required_questions_ids = params[:input_quiz_questions].split().map { |s| s.to_i } #taken from text_field_tag
# remaining logic here
路线
resources :quizzes, as: 'tests' do
member do
get :add_questions
end
end
那我为什么在这里遇到上述错误,该如何纠正呢?
答案 0 :(得分:0)
您应该在form_tag之后写上网址,而不是在选项哈希中写上动作的名称
strings.xml