У меня есть два действия form_one
и form_two
.Один является псевдонимом другого.
FormsController
def form_one
@selected_tab = { form_type => :selected }
end
alias :form_two :form_one
private
def form_type
@form_type = params[:form_type]
end
Я объявил, что это маршрут "get".Он отображает форму.Я написал действие update
в модуле и включил модуль в FormsController
.Обновление маршрута также объявляется.У меня есть две вкладки с одинаковыми действиями.Когда из представления выбирается одна вкладка, form_type
этой формы отправляется в приватный метод контроллера form_type
.
views / tabs:
%span
= link_to 'Form_one' form_one_path(form_type: :form_one)
%span
= link_to 'Form_two' form_two_path(form_type: :form_two)
form_partial:
= form_for @form_type, url: form_path(@resource), method: :patch, remote: true, html: { class: 'form-horizontal' } do |f|
При отображении форм параметры передаются правильно, но при обновлении параметры передаются как nil
.
Я передал параметры как form_type
в пути, но этопо-прежнему выдает ту же ошибку.Если я добавлю условие or
в метод form_type
, например, так:
@form_type = params[:form_type] || 'form_one'
, тогда он просто обновит атрибуты form_one
.И если условие будет удалено, @form_type
будет nil
, потому что параметры nil
.
Когда я обновляю атрибуты определенной формы, они должны обновляться.Но здесь параметры передаются как nil
при обновлении.Как это можно сделать?