【发布时间】:2015-08-12 17:21:39
【问题描述】:
我正在尝试根据访问者是否参与测试有条件地验证 full_name 和 zip(参与测试的访问者将拥有某些会话数据) .我可以通过 customer.visitor_test() 将潜在客户控制器中的真/假传递给客户模型,但我无法从 in_test? 中的 in_test? 访问 @test模型。我错过了什么?
客户.rb
/* Stripped down code */
class Customer < ActiveRecord::Base
attr_accessor :test
validates :full_name, presence: true, if: :not_in_test?
validates :zip, presence: true, if: :in_test?
def visitor_test(bool)
@test = bool
end
def in_test?
@test
end
def not_in_test?
!self.in_test?
end
end
leads_controller.rb
/* Stripped down code */
class LeadsController < ApplicationController
def create
session[:zip] = zip
session[:email] = email
session[:full_name] = full_name
session[:email_opt_in] = email_opt_in
session[:phone] = phone
listing = Listing.where(id: listing_id).first
customer = create_or_update_customer_from_session(listing)
customer.visitor_test(/* true || false */)
if customer.errors.blank?
/* Do something */
else
/* Something else */
end
end
end
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller model controller