Как исправить «Проверка», которая не происходит в первом шаге моего злого мастера - PullRequest
1 голос
/ 03 мая 2019

Я новичок в программировании на Ruby, но мой код для проверки вообще не появляется на первом шаге моего мастера после входа в систему. Моя проверка для двух дополнительных полей работает на начальном экране, но остальные поля - нет. вообще не работает?

Я также использую гем Devise для аутентификации.

Я пытался реализовать этот код. Нажмите здесь !

Мне не удалось. Я попытался реализовать user_id, но он также не будет работать. Я добавил оператор пут, и я вижу, что его ударили, но проверка не происходит? Я пытался сделать некоторые другие вещи без удачи. Я не совсем понять, где это происходит в сторону. Пожалуйста, смотрите мой код ниже.

Мой злой контроллер шагов

    class AfterRegistrationController < ApplicationController
  include Wicked::Wizard
  layout 'noheaderOrfooter', :only => [:new, :show, :create, :update]

  #before_action :authenticate_user!

  steps :addCompanyInfo, :taxInformation, :achBankInfo, :finalstep

  def show
    @user = current_user
    render_wizard
  end

  def update
    @user = current_user
    params[:user][:current_step] = step
    case wizard_value(step)
    when :addCompanyInfo 
      @user.update_attributes(company_params)
    when :taxInformation
      @user.update_attributes(tax_params)
    when :achBankInfo
      @user.update_attributes(bank_params)
    else 
      @user.update_attributes(final_params)
    end
    render_wizard @user
  end


  def company_params
      params.require(:user).permit(:CompanyLegName, :CompnayWebsite, :CompanyAddrss, :CompSuitOrApt, :City, :State, :ZipCode, :current_step)  
  end

  def tax_params
    params.require(:user).permit(:EINbr, :startdate, :NbrOfTrucks, :estpayroll, :City, :State, :ZipCode)
  end

  def bank_params
    params.require(:user).permit(:BankName, :RoutNbr, :AcctNbr, :confirmAcctNbr)  
  end

  def final_params
    params.require(:user).permit(:CompanyLegName, :CompnayWebsite, :CompanyAddrss, :CompSuitOrApt, :City, :State, :ZipCode) 
  end

end

разработка регистрационного контроллера

def after_sign_up_path_for(resource)
after_registration_path(:addCompanyInfo)
end

модель пользователя

    class User < ApplicationRecord
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
  :recoverable, :rememberable, :validatable

  validates :fname, :lname, :presence => true
  validates :CompanyLegName, :CompanyAddrss, :CompSuitOrApt, :City, :State, :ZipCode, :presence => true, if: -> { current_step?(:addCompanyInfo) }

  def current_step?(step_key)
  current_step == step_key
  puts 'I hit this method'
  puts step_key
  end
 # Setup accessible (or protected) attributes for your model
 #attr_accessible :email, :password, :password_confirmation, :remember_me, :fname, :lname, #:CompanyLegName, :CompanyAddrss, :CompSuitOrApt, :City, :State, :ZipCode, :Ownersfname, #:OwnersLname
 #devise :database_authenticatable, :registerable,
 #:recoverable, :rememberable, :trackable, :validatable

end

1 Ответ

0 голосов
/ 04 мая 2019

В моей модели я сравнивал current_step, который является строкой, с моим step_key, который возвращал параметр, который возвращал бы false все время, когда я менял его, чтобы вернуть строку, которая позволяла мне сравнивать current_step, который является строкой, с step_key.to_sкоторая является строкой

ниже

 def current_step?(step_key)
   current_step == step_key.to_s 
 end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...