我有兴趣创建和更新表中没有主键的行。我的表格有3列 - person_id,年份和薪水。我明白我应该使用has_and_belongs_to,但我在理解如何实现我的创建和更新方法以及我的form.html文件时遇到问题。任何人都可以帮助解释这一点,也许有一个简单的例子来说明如何做到这一点?Rails多对多更新并创建
0
A
回答
0
has_and_belongs_to_many例如
# category model
class Category < ActiveRecord::Base
has_and_belongs_to_many :users
end
# user model
class User < ACtiveRecord::Base
has_and_belongs_to_many :categories
end
连接表的样子
class CreateCategoriesUsersJoinTable < ACtiveRecord::Migration
def change
create_table :categories_users, :id => false do |t|
t.integer :category_id
t.integer :user_id
end
end
end
现在你可以访问你的信息
$ User.categories
$ Category.users
$ user = User.first
$ user.categories
$ category = Category.first
$ category.users
0
添加一个主键,将其忽略。您可以在(person_id,year)上添加一个唯一索引来模拟PK约束,但ActiveRecord严重依赖其实例的ID。
相关问题
- 1. Rails多个创建/更新表单
- 2. 在Rails中创建多对多关系
- 3. 更新多对多记录的Rails
- 4. 更新与Rails的多对多关系
- 5. 续集多对多 - 如何创建新记录并更新连接表
- 6. 创建一个新的多对多表
- 7. Rails多对多多态创建多项式
- 8. Django rest_framework 3.22多个更新创建对象而不是更新
- 9. 实体框架多对多更新而不创建重复项?
- 10. 如何创建和更新与EF的多对多关系
- 11. DRF 3 - 创建多对多更新/创建序列化虽然表
- 12. Rails更新一到一对多 - 创建子对象(如果不存在)
- 13. Symfony窗体创建新对象并创建第一个一对多对象
- 14. 在Rails窗体中合并多个模型以创建一个新对象
- 15. ASP.NET MVC3创建多对多
- 16. Rails嵌套窗体:更新创建多个记录
- 17. 通过单一表单创建/更新多个多对多记录
- 18. 更新多对多EF
- 19. Symfony:更新多对多
- 20. JPA多对多更新
- 21. EF Codefirst更新多对多
- 22. 更新多对多关系
- 23. 更新多对多关系
- 24. 更新多对多表SQL
- 25. 更新多对多关系
- 26. 只创建一个对象并更新
- 27. Asp MVC3一对多创建并查看
- 28. 创建多级关联rails
- 29. 多对多关系 - 实体框架正在创建新对象
- 30. 如何在Rails 4.2中为多对多关联创建表格
checkout http://stackoverflow.com/questions/5120703/creating-a-many-to-many-relationship-in-rails-3 –
(person_id,year)看起来像是一个自然的主键,但Rails没有'不支持复合键。你可以试试这个宝石:http://compositekeys.rubyforge.org/ – Teoulas