Вопрос

Я просмотрел множество вопросов о вложенных ресурсах form_for и не могу заставить ни одно из решений работать на меня. Я подумал, что пора задать личный вопрос.

У меня есть две модели: вакансии и вопросы, вакансии имеют_мало вопросов, а вопросы принадлежат_работам.

Я использовал скаффолдинг для создания контроллеров и моделей, а затем вложил ресурсы в routes.rb.

общий

Сейчас я пытаюсь открыть / jobs / 1 / questions / new и продолжаю получать

NoMethodError в вопросах # новое

Я начал с ошибки Нет совпадений маршрута {: controller=> "questions"} , когда код был

общий

Я знаю, что это неправильно, поэтому начал пробовать другие комбинации, но ни одна из них не сработала.

Я пробовал

общий

это

общий

это

общий

Среди множества других комбинаций, которые не работают.

Вот ссылка на мои рейк-маршруты: git clone https://gist.github.com/1032734

Любая помощь приветствуется. Дайте мне знать, если вам понадобится дополнительная информация, спасибо.

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

Решение

Я просто передаю URL в качестве дополнительной опции:

общий

РЕДАКТИРОВАТЬ:

Также попробуйте:

общий

Другие советы

Вот как я решил свою :)

В вашем генеральном коде тегов

общий

Чтобы это работало, вам нужен идентификатор вакансии.Вы пройдете его следующим образом: В общем коде тегов

общий

Сборка (questions/_form.html.erb) аналогична использованию new (questions_controller.rb) в приведенном выше коде, с отличиями только в более старых версиях rails;рельсы 2 вниз.

Теперь о действии создания (все еще в коде .build)

общий

Если вы используете только их, поля job_id и user_id в модели вопроса будут пустыми.Чтобы добавить идентификаторы, сделайте следующее: В вашем генеральном коде тега добавьте job_id к job_params следующим образом:

общий

Затем, чтобы передать идентификатор пользователя (если вы используете Devise), выполните:

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