AbstractController :: ActionNotFound с form_tag в Rails - PullRequest
0 голосов
/ 22 июня 2019

Когда я использую form_tag, как показано ниже, я получаю эту ошибку:

AbstractController :: ActionNotFound в / quizzes / [whichever_quiz_id]

Действие «whichever_quiz_id» не можетбыть найден для QuizzesController

Мой код, как показано ниже:

файл 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

Так почему я получаю вышеуказанную ошибку здесь и как я могу ее исправить?

1 Ответ

0 голосов
/ 22 июня 2019

Вы должны написать после form_tag URL, а не имя действия в хэш-опции

<%= form_tag quizzes_add_questions_path, method: :get  do %>
...