Вопрос

У меня есть 2 модели, оценки и вопросы. Оценки имеют много вопросов.

В маршрутах у меня есть:

map.resources :assessments, :has_many => :questions
map.root :assessments

Я проверил маршруты граблей, это как ожидалось

В форме создать новый вопрос, я получаю следующую ошибку:

undefined method `questions_path' for #<ActionView::Base:0x6d3cdb8>

Если я вынуму форму, вид нагрузки в порядке, поэтому я думаю, что это что-то с кодом в этом представлении - Я получаю ошибку на линии form_for:

<h1>New question</h1>

<% form_for [@assessment, @question] do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :content %><br />
    <%= f.text_field :content %>
  </p>
  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Cancel', assessment_path(@assessment) %>

Райки маршруты - http://pastebin.com/6fkupwhq.

Код для контроллера вопросов - http://pastebin.com/urzpmecg.

Код для оценки контроллера - http://pastebin.com/hstvftq4.

Может кто-нибудь помочь мне отладить это? Спасибо!

Это было полезно?

Решение

Тебе нужно иметь

@assessment = Assessment.find(params[:assessment_id])

в контроллере. Иначе, @assessment является nil.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top