Ruby on rails 从中查找或按属性初始化
因此,我正在尝试实现批量导入,即文本区域,人们可以在其中以“amount cardname”的形式编写卡片列表。然后Rails获取每一行,查找金额和卡名(该部分正在工作)并将其添加到数据库中(该部分不工作) 我的数据库:Ruby on rails 从中查找或按属性初始化,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,因此,我正在尝试实现批量导入,即文本区域,人们可以在其中以“amount cardname”的形式编写卡片列表。然后Rails获取每一行,查找金额和卡名(该部分正在工作)并将其添加到数据库中(该部分不工作) 我的数据库: 卡片(身份证、姓名)-已经填写,我不想在这里创建任何内容 用户(id、名称) haves(身份证、身份证、用户身份证、金额) 关系 用户有很多优点 卡有很多优点 拥有属于卡和用户的 >卡片批量。每行做一行| >卡片数据=/(^\d.?\s)(.+)/.match(行)
- 卡片(身份证、姓名)-已经填写,我不想在这里创建任何内容
- 用户(id、名称)
- haves(身份证、身份证、用户身份证、金额)
- 用户有很多优点
- 卡有很多优点
- 拥有属于卡和用户的
谢谢您只需执行以下操作:
card = Card.find_or_create_by_name(card_data[2])
haves = Have.find(:card => card, :user => user)
if haves.empty?
card.haves.create(:amount => card_data[0].to_i, :user => user)
else
haves.update_attibutes(:amount => (haves.amount + card_data[0].to_i))
end
你可以使用新的记录吗?救援人员
card = Card.find_or_create_by_name(card_data[2])
haves = card.haves.find_or_initialize_by_user_id(user)
haves.amount = haves.new_record? ? card_data[0].to_i : haves.amount + card_data[0].to_1
card.save
card = Card.find_or_create_by_name(card_data[2])
haves = card.haves.find_or_initialize_by_user_id(user)
haves.amount = haves.new_record? ? card_data[0].to_i : haves.amount + card_data[0].to_1
card.save