форма для вложенного ресурса
-
29-10-2019 - |
Вопрос
Я просмотрел множество вопросов о вложенных ресурсах 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), выполните:
общий