我们有一个“客户”表单,该表单不存储数据,但具有一个表单,然后将其推送给联系人。我想做的是,当客户输入数据时,是要从表单中获取邮政编码,并将其与所有邮政编码进行比较,如果匹配,则将他们的联系信息发送给所在地区的经理。
简而言之,Bill输入10001,并且与区域ID为3的Zipcodes数据库匹配。因此,区域3的经理会收到电子邮件。
对于我拥有的型号:
Zipcode
belongs_to :region
Region
has_many :zipcodes, dependent: :destroy
Contact
include ActiveModel::Model
attr_accessor :first_name, :last_name, :company, :region, :email, :message_for_mailer, :inquiry, :address, :city, :state, :zipcode
在我的ContactsController中,我具有以下创建条件:
def create
@contact = Contact.new(contact_params)
@contact.valid?
if captcha?
ContactMailer.contact_request(@contact).deliver if @contact.valid?
else
@contact.errors.add(:base, 'Please verify you are human')
end
respond_with @contact
end
我的想法是:
def create
@zipcode = Zipcode.all
@contact = Contact.new(contact_params)
@contact.valid?
if captcha?
if @contact.zipcode == @zipcode.zipcode
ContactMailer.custom_request(@contact).deliver if @contact.valid?
else
ContactMailer.basic_request(@contact).deliver if @contact.valid?
end
else
@contact.errors.add(:base, 'Please verify you are human')
end
respond_with @contact
end
但是我很确定这是行不通的,因为我实际上没有与数据库进行比较。那么如何用创建的数据结果遍历Zipcode表呢?
答案 0 :(得分:0)
我将使用ActiveJob创建可以在发送响应后执行的作业。这使该应用程序更加灵活,因为用户不必等待发送电子邮件的时间,从而释放了您的Web线程。
loop
然后您可以简单地从控制器中处理作业:
// motor functionings
void mPower(int m1, int m2){
// Left Motor
if(m1 > 0){ //left motor move foward
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
}else{ ////left motor move backward
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH );
m1 = m1*-1; //convert m1 into positive value
}
analogWrite(ENA,m1); //set pwm value according to m1
//Right Motor
if(m2 > 0){ //right motor move foward
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
}else{ //right motor move backward
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH );
m2 = m2*-1; //convert m2 into positive value
}
analogWrite(ENB,m2); //set pwm value according to m2
}
void loop() {
mPower(leftSpeed, rightSpeed);
}
它将在排队系统免费时执行。