ruby-on-rails - Rails 在创建时向表中添加数据

标签 ruby-on-rails ruby ruby-on-rails-5

我有两个表 User (Devise) 和 Phones

我希望当用户注册时通过设计完成注册,将 user_id 和电话类型加载到 Phones 表中

但是我不知道该怎么做。我已将用户与电话联系起来

User.rb

has_many :phones

Phones.rb

belongs_to :user

db (schema)

 t.index ["user_id"], name: "index_phones_on_user_id"

任何帮助将不胜感激

最佳答案

你可以运行 after_create User 模型的回调

after_create :assign_phone

private

def assign_phone
  phone = phones.new
  # assign required values
  phone.save
end

如评论中所述,如果出现错误,phone.save 将静默返回 false,使用 !(bang) 将引发并错误另一种解决方案是检查它是否已保存,然后执行您想要的任务..

def assign_phone
  phone = phones.new
  # assign required values
  if phone.save
    #on successfull save
  else
    #on failure
  end
end

关于ruby-on-rails - Rails 在创建时向表中添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44301485/

相关文章:

ruby-on-rails - 如何在 rails 上更新 oracle clob 列 ruby​​,错误 : string literal too long

ruby-on-rails - 为什么我的 Rails 容器没有连接到我的 Postgres 容器?

sql - 我如何总结一组中最早和最多的记录?

ruby-on-rails - Searchkick-Elasticsearch-带下划线而不是空格的名称

ruby-on-rails - 如何修复模板错误 "CoffeeScript not defined"

mysql - 在处理竞争条件时选择和更新一行?

ruby-on-rails - `*` 用作参数时的含义(不像*arg,只是*)

ruby-on-rails - 无法在 ubuntu 12.04 中安装 nokogiri

ruby-on-rails - 如何将独立维护的 ruby​​ 脚本合并到 Rails 应用程序中

ruby - 测试环境中 Rails.application.secrets 中缺少 secret_key_base