Я использую многошаговый контроллер wicked gem, и я не могу передать пользовательский экземпляр форме в моем представлении.
signup_step_controller
class Tenants::SignupStepsController < ApplicationController
include Wicked::Wizard
before_action :authenticate_tenant!
steps :account_link, :ach_setup, :payee_setup, :goal_setup
def show
@tenant = current_tenant
case step
when :account_link
@tenant.accounts.build if @tenant.accounts.blank?
@tenant.update_attributes(params[:accounts_params])
if @tenant.account.exchange_token.present?
skip_step
end
when :payee_setup
@tenant.payees.build if @tenant.payees.blank?
@tenant.payments.build if @tenant.payments.blank?
when :goal_setup
@tenant.build_escrow if @tenant.escrow.blank?
end
render_wizard @tenant
end
View
<%= form_for @tenant, url: wizard_path(@tenant), method: :put, validate: true do |a| %> <!--fix this current_tenant not bing passed -->
<%= a.fields_for :accounts do |f| %>
<%= devise_error_messages! %>
<span class="form-group">
<%= f.label :bank_routing_number %>
<%= f.text_field(:routing, class: "sexy-input col-4") %>
...
Я получаю следующую ошибку ...
No route matches {:action=>"show", :controller=>"tenants/signup_steps", :id=>nil}
Однако, если я изменю форму на ...
<%= form_for current_tenant, url: wizard_path(current_tenant), method: :put, validate: true do |a| %>
Тогда форма работает, но яне могу понять, почему контроллер не передает пользователя-арендатора.
Еще одна вещь ...
Моя форма частично находится на вызываемом представлении ...
<div class="col-lg-12">
<h1>Complete this form to setup basic ACH payment services</h1>
<div class="columns">
<%= render '_basic_ach_form.html.erb' %>
</div>
Нужно ли передавать экземпляр @tennat в партиал?