Rails 5:将与自定义名称的belongs_to关联添加到模型中,并进行迁移

2024-03-26

我有一个User模型和一个Question model.

我想添加一个belongs_to :user关联到Question模型,但我希望将该关联称为author。例如,我会打电话question.author而不是question.user.

显然这需要两个步骤:

  1. models/question.rb 中的关联
  2. 迁移(注意用户表和问题表都已存在)

令人惊讶的是,我没有在 Rails 5 的不同答案中找到执行此操作的单一常规方法。

我该怎么做呢?


rails g migration add_user_to_questions user:references
rails db:migrate

理想情况下,您还可以打开生成的迁移并更改add_reference通过添加您需要的选项。更“完整”的 add_reference 示例:

add_references(
  :user,
  null: false,
  index: {name: "custom_index_name_if_needed"},
  type: :integer,
  foreign_key: {
    to_table: "public.my_users_table",
    on_delete: :cascade # ensure the row is deleted when user is deleted from DB
  }
)

然后在模型中:

class Question < ApplicationRecord # or ActiveRecord::Base
  belongs_to :author, class_name: 'User', foreign_key: :user_id
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 5:将与自定义名称的belongs_to关联添加到模型中,并进行迁移 的相关文章

  • ASP.NET MVC 或 Ruby On Rails 哪个更快 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 simple_form 条目输入空数组值

    我对 Rails 和 simple form 仍然很陌生 并且一直在尝试实现多重选择选项来为用户提供多个角色 当前输入看起来像这样 所以 这确实有效 但在数组的开头包含一个空值 secondary
  • Rails 缓存数据库查询和最佳实践

    我网站上的数据库负载变得非常高 因此我需要缓存每小时被调用 1000 次且结果不变的常见查询 例如 在我的城市模型上 我执行以下操作 def self fetch id Rails cache fetch city id City find
  • Ruby 安装由于缺少扩展而中止:openssl、readline、zlib 编译错误

    我正在使用 macOS Catalina 我正在尝试通过 rbenv 安装旧版本的 Ruby 1 9 3 2 1 2 但是 在尝试安装旧版本时 我不断收到以下错误 安装 2 4 或更新版本时没问题 我已经尝试过 brew install o
  • 多个 Rails 应用程序,单个 MySQL 数据库

    我打算为 site com api site com admin site com 分别创建多个 Rails 应用程序 所有应用程序都将从一个 MySQL 数据库访问相同的表 应用程序和数据库在同一服务器上运行 对于上述访问场景 Rails
  • 用于解析序列化 PHP 数组的 ruby​​ gem? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 savon v2 的 SOAP Web 服务 并在响应中获取一个我需要解析的序列化 PHP
  • Rails 4 - 如何安装“jquery-ui”?

    为了使用 jquery 自动完成插件 我需要安装jquery ui gem 到目前为止 我的 gemfile 中有以下内容 gem jquery rails 所以我补充道 gem jquery ui rails And to applica
  • Twitter 宝石搜索方法

    我的代码在这里 require twitter search Twitter Search new containing obama 它返回我们
  • 数据库被锁定?

    我如何修复数据库锁 因为我的测试没有通过 它使同一类别中的一堆测试失败 谢谢 1 UsersController GET edit should have a link to change the Gravatar Failure Erro
  • 设计如何覆盖 send_confirmation_instructions

    我正在尝试重写方法 send confirmation instructions 如下所示 http trackingrails com posts devise send confirmation mail manually or del
  • 如何在 Rails 2 中正确使用 OmniAuth

    我正在尝试为我的应用程序使用 OmniAuth 0 2 6 策略 架构为 Rails 2 3 10 Rack 版本为 1 1 OmniAuth 需要此版本或更高版本 出现的问题是 Rails 无法识别我重定向到 auth provider
  • 如何在S3中存储数据并允许用户使用rails API / iOS客户端以安全的方式访问?

    我是编写 Rails 和 API 的新手 我需要一些有关 S3 存储解决方案的帮助 这是我的问题 我正在为 iOS 应用程序编写一个 API 用户在 iOS 上使用 Facebook API 登录 服务器根据 Facebook 向 iOS
  • 授予 Rails 应用 API 访问权限的最佳身份验证方法

    我想为我的网络应用程序提供经过身份验证的 API 访问 此类服务的消费者通常是其他网站 服务 验证这些用户身份的最佳方法是什么 OAuth openID http 身份验证 正如我们的工作一样 哪个最好 的答案是这样的 是 这取决于 HTT
  • ActiveSupport 如何计算月度总和?

    我很高兴也很惊讶地发现 ActiveSupport 按照我想要的方式进行月度汇总 无论相关月份中有多少天 添加1 month对特定的Time将使您在该月的同一天着陆Time gt Time utc 2012 2 1 gt Wed Feb 0
  • has_many 关系的动态 class_name

    我正在尝试与动态 class name 属性建立 has many 关系 class Category lt ActiveRecord Base has many ads class name gt lambda return self i
  • Rails 4.0 expire_fragment/缓存过期不起作用

    我一直在尝试使用 Rails 的缓存功能 但我无法使某些缓存片段过期 尽管它们似乎已过期 使用 Rails 教程网站中指出的 Russian Doll Caching 我正在使用此配置 我使release controller rb 控制器
  • 在 Ruby on Rails 中渲染部分集合正在乘以项目

    我想在 Ruby on Rails 的页面中显示项目列表 我使用部分 in my index html erb我有的文件 in list news html erb I have div class news div
  • 为铁路中的自引用关联建立工厂

    我有一个典型的要求 我必须按如下方式处理用户对象 user referrer and user referrers 基本上 用户可以推荐多个人 并且一个人应该由一位特定用户推荐 所以我按如下方式建立关联 他们工作得很好 class User
  • Rails 和 Mysql 的毫秒数

    使用 Rails Mysql 时存储时间 以毫秒为单位 的最佳方式是什么 我将使用小数和composed of 以便能够将该值作为Ruby 时间进行操作 有人有更好的主意吗 自从提出这个问题以来 已经过去了好几年了 这是更新的解决方案 ht
  • ruby 调试和黄瓜

    我在 Cucumber 中遇到了失败的情况 我想使用 ruby debug 来调试我的 Rails 控制器 但是 如果我将 调试器 添加到我想要中断的位置 它就不会停止 我尝试将 ruby debug 和 ruby gems 的 requi

随机推荐