使用活动记录 ROR 按帐户查找电子邮件



我正在尝试使用最佳实践重构模型,我认为这将是活动记录。

 class WEBOEL23 < ActiveRecord::Base
 establish_connection "as400_#{RAILS_ENV}"
 set_table_name "WEBOEL23"  
    def get_email 
      @weboe123 = WEBOEL23.EMAL23    
      where @weboel23
 end
end

我在 models/order.rb 中调用它 在 order.rb 中,我正在寻找 weboel23 表中的电子邮件。(这是来自AS400的逻辑文件)执行此代码时,它将返回一个 NameError (未初始化的常量 Order::EMAL23)

 if sign_on.acctypw1.strip == "DS" or sign_on.acctypw1.strip == "DSD" 
if approval0!=""  
                            Mailer.deliver_order_distributor_approval_email(Weboel23.get_email, "Coastal Pet Online Ordering<noreply@coastalpet.com>", "DIST Confirmation-0 ", email_details)
end 

我已经尝试了下面的所有建议,是的,我仍在学习,但我真的需要一些指导来克服这个错误

我不知道

你来自哪种语言,但你肯定不使用Ruby和rails风格。

  • 首先,您使用find_email_by_account act223并分配一个变量,那么为什么要调用此方法。
  • 其次,d= "",什么是d。在红宝石中,在编程中一般,最好使用显式名称。
  • 对于!act223.blank?,有这种方法act223.present?
  • s = @email.where ["EMAL23=?" ]中的s是什么?
  • 可变@emailact223从何而来?

对于您的错误,名为weboel23的文件必须定义一个名为Weboel123的模型。

您可能应该像这样执行可调用的实例方法@account.email

我建议构建这样的模型:

class WEBOEL23 < ActiceRecord::Base
  establish_connection "as400_#{RAILS_ENV}"
  set_table_name "WEBOEL23"
  def email
    WEBOEL23.where(ACT223: act223).first.email
  end
end

所以你可以这样使用它:

@weboel23.email

我不知道这是否是最佳实践,因为我不知道什么是ACT223或weboel23。

我同意@bjhaid的评论。暂停一下,阅读有关Ruby和rails的信息。

相关内容

  • 没有找到相关文章

最新更新