如何在Rails中根据名称存储获取id?

时间:2015-12-22 01:28:17

标签: ruby-on-rails associations

我正在处理一个由进口组成的维护项目。

我的档案:

应用程序/进口/ contacts_importer.rb:

require 'csv'

class ContactsImporter < BaseImporter

  def import
    ..............
    sales_exec = fetch_value(row, "Sales Exec", :string) 
    email = fetch_value(row, "Email", :string) 
    ...................
        sales_exec_id = nil
        if sales_exec.present?
          sr = @file_import.account.users.where(initials: sales_exec).first
          sales_exec_id = sr.try(:id) if sr.present?
        end
        sales_exec_id = sales_exec_id 

        if company.present? 
          customer = Company.new
          customer.name = company
          customer.phone = phone
          customer.email = email
          customer.sales_exec = sales_exec_id
        end
  end

end

我的要求是我可以存储姓名,电话和电子邮件,但无法获得sales_exec_id。 sales_exec是角色表中具有role_name(Sales Executive,Product Manager等)的用户。 关系是用户has_many角色通过user_roles(由role_id和user_id组成)。 有没有办法在sales_exec_id的代码中编写查询以匹配sales_exec(显示Venkat,John等)。

1 个答案:

答案 0 :(得分:1)

由于没有整个系统环境和csv文件,我建议采用两种方法。

    if sales_exec.present?
      sr = @file_import.account.users.where(initials: sales_exec).first
      sales_exec_id = sr.try(:id) if sr.present?
    end
  1. 添加puts sr添加,请参阅终端

  2. 中的输出
  3. 查看终端中的查询SQL,您可以在数据库GUI中对其进行调试