ruby-on-rails - 在 Ruby on Rails 中生成多对多模型

标签 ruby-on-rails activerecord code-generation

有没有办法生成具有预定义多对多关系的 Rails 模型?我知道如何在事后将其添加到 Active Record 中,但最好立即在 DB 迁移和 Active Record 模型中定义它。

最佳答案

请记住,您不需要连接表的 id,因此请确保添加 :id => false |t|

create_table assemblies_parts, :id => false do |t|
  t.integer :assembly_id
  t.integer :part_id
end

如果你使用 rails
rails generate model Assemblies_parts assembly:references part:references

你将有两个索引,但你想要的是
# Add table index
add_index :assemblies_parts, [:assembly_id, :part_id], :unique => true

更新
  • 对于 Rails 5 使用 create_join_table instead创建该(无id)表。
  • 关于ruby-on-rails - 在 Ruby on Rails 中生成多对多模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5322067/

    相关文章:

    ruby-on-rails - 将列名作为变量传递给 ActiveRecord 查询

    ruby-on-rails - 在 Rails 4 和 ActiveRecord 中构建范围搜索

    c# - 一种在构建时修改类(和通用程序集)数据的方法

    c# - Visual Studio : generating code upon xsd problems with integers

    ruby-on-rails - 如何解决 Rails 模型属性和 gem 名称冲突?

    ruby-on-rails - Ruby:警告:您正在将 Rubygems 2.0.14 与 Spring 一起使用。至少升级到 Rubygems 2.1.0

    ruby-on-rails - 有效地检索给定时间段内的 ice_cube 计划

    codeigniter count_all_results

    javascript - 克隆数据时指定目标?

    html - 无法应用 css 样式来管理 gem UI View 以实现响应式