Sto cercando di seguire la guida per la convalida parziale sull'oggetto utilizzando la gemma della procedura guidata, ma continuo a ricevere l'errore undefined metodo 'include?' per niente: NilClass, non capisco cosa c'è che non va, hanno provato a seguire le istruzioni passo passo.metodo non definito `include? ' per nil: NilClass con convalida parziale del wizard gemma
L'errore nel registro mostra.
NoMethodError - undefined method `include?' for nil:NilClass:
app/models/property.rb:22:in `active_or_tenants?'
Ecco i miei passi controller.
class Properties::BuildController < ApplicationController
include Wicked::Wizard
steps :tenant, :confirmed
def show
@property = Property.find(params[:property_id])
@tenants = @property.tenants.new(params[:tenant_id])
render_wizard
end
def update
@property = Property.find(params[:property_id])
params[:property][:status] = step.to_s
params[:property][:status] = 'active' if step == steps.last
@property.update_attributes(params[:property])
render_wizard @property
end
def create
@property = current_user.properties.build(params[:property])
logger.info @property.attributes
if @property.save
flash[:success] = "Tenant Added"
redirect_to wizard_path(steps.second, :property_id => @property.id)
else
render 'edit'
end
end
end
Property.rb
class Property < ActiveRecord::Base
attr_accessible :name, :address_attributes, :tenants_attributes, :property_id, :status
belongs_to :user
has_one :address, :as => :addressable
accepts_nested_attributes_for :address, :allow_destroy => true
has_many :tenants
accepts_nested_attributes_for :tenants, :allow_destroy => true
validates :name, :presence => true
validates :address, :presence => true
validates :tenants, :presence => true, :if => :active_or_tenants?
def active?
status == 'active'
end
def active_or_tenants?
status.include?('tenants') || active?
end
end
Fatemi sapere se avete bisogno di qualunque altre parti aggiunte alla domanda. Grazie in anticipo.
Da quale riga deriva l'errore? – MrYoshiji
riga 22 in property.rb NoMethodError - metodo non definito 'include? ' per nil: NilClass: app/models/property.rb: 22: in 'active_or_tenants? ' – cyclopse87
Oh! Vedo ... Lo stato è in realtà una colonna (attributo) della classe Proprietà, giusto? Se sì, quindi sostituire 'status.include? ('Inquilini') || attivo? 'con' (stato || '') .include? ('inquilini') || attivo? ' – MrYoshiji