У меня есть форма, определены следующим образом:Rails form_for условных параметров
form_for(@model) do |f|
# Really a lot happens here
end
мне было интересно, если есть способ, которым я могу настроить самую первую строку: form_for(@model)
Сначала я, хотя я мог бы можно использовать вспомогательную функцию:
def my_form
if some_condition
form_for(@model)
else
form_for [@model, @nested_model]
end
end
, а затем вставьте его в форму. Как это:
my_form do |f|
# Really a lot happens here
end
Но, я получаю "Нет блок не дал" ошибка. Может кто-то указать - почему и как это исправить? Может быть, есть другой подход, который я мог бы использовать?
Не спрашивайте меня, зачем оно мне нужно. Просто чтобы все было как можно сухим. Формы должны быть многоразовыми, вы знаете: D
Можете ли вы быть немного более четкое представление о что это за 'some_condition'? Получается ли доступ к какой-либо глобальной информации где-нибудь (вы не передавали ее как параметр)? Вы получили сообщение об ошибке, потому что ваш помощник 'my_form' не предназначен для принятия параметра блока. – lurker
@mbratch Рассмотрим «some_condition» здесь как переменную экземпляра из представления. Или переменная, переданная этому вспомогательному методу. Не имеет значения. Важно то, что я хочу иметь возможность переключаться между «form_for». У меня есть – Dmitri