Ruby on Rails中的关系:列表的正确模型构建方法是什么?

时间:2015-07-14 15:25:43

标签: ruby-on-rails ruby-on-rails-4 relationship rails-models

如果我在行程中有一个列表,我正在试图找出设置我的模型和数据库的正确方法...

数据库表

`users`
id

`itinerary`
id
user_id
items

模型

class User < ActiveRecord::Base
  has_many :itineraries
end

class Itinerary < ActiveRecord::Base
  belongs_to :user
end

这是基础,但如果我想让用户在他们的行程中输入多个项目怎么办?我应该有一个单独的模型和表格吗?所以在itinerary 数据库表而不是items下,它应该是item_id

`itinerary`
id
user_id
item_id    # the change here

并有一个单独的项目表:

数据库表

items
id
itinerary_id    # relationship id
name

模型

class Item < ActiveRecord::Base
  belongs_to :user
  belongs_to :itinerary
end

class Itinerary < ActiveRecord::Base
  belongs_to :user
  has_man :items
end

或者,如果这不是正确的方法,您如何在行程数据库表中显示项目列表?

谢谢!

1 个答案:

答案 0 :(得分:1)

添加Puce的答案,对于has_many关系,您不需要在行程表下设置列item_id。

如果你只在items表中有itinerary_id就足够了。