Я использую этот путь: new_inspiration_path(inspiration_id: inspiration.id)
, чтобы взять информацию из существующего вдохновения и предварительно заполнить новую форму, чтобы пользователь мог дублировать вдохновение, просто щелкнув маршрут пути, а затем отправьте..find & .built с новым?
Но моя проблема заключается в том, что после подачи формы новое вдохновение не создается.
def new
if params[:inspiration_id]
@inspiration = Inspiration.find(params[:inspiration_id])
end
@inspiration = current_user.inspirations.build
end
def create
@inspiration = current_user.inspirations.build(inspiration_params)
@inspiration.save
end
Это происходит потому, что @inspiration застрял пытается сделать две разные вещи: .find
и .built
. Как мы можем сделать оба, когда params[:inspiration_id]
?
Вопрос вдохновленный: How to prepopulate form with data passed from @object?
Это была опечатка. Я хотел сказать просто «вдохновение» для всех, но, возможно, это сработает, если я сделаю различие с использованием «вдохновения» и «вдохновения». Я подключил ваш код как есть и, сняв конец 'al' с' inspirational', но в любом случае код не заполняет _form. Возможно, это потому, что я не понимаю ваш «конечно» абзац. Извините, пожалуйста, подробно изложите Лейто? Большое спасибо за помощь человеку! –
Вы говорите, что форма не заполняется, но у inspirational_attributes есть значения, которые вы хотите? Нам нужно убедиться, что он работает, прежде чем беспокоиться о форме. Я просто имел в виду, что 'inspirational_attributes = {}' должен быть до 'if', поэтому вы не получите« NameError: неопределенная локальная переменная или метод 'inspirational_attributes» – Leito
Да, я просто помещаю 'Inspiration.name' для 'attribute_names', и когда я нажимаю на путь, я переношу в новую _form, где она остается незаселенной. Ошибок не возникает. И спасибо за разъяснение Leito :) –