Ruby on rails Rails模型问题

Ruby on rails Rails模型问题,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,我有两个模型。一个是项目模型,另一个是事件模型。 我需要做的是: 项必须“签出”到事件。事件将显示所述事件之外的所有项目。事件结束后,用户将再次检查项。您应该仍然能够看到上述事件中的所有项目 这就是我当前的型号: class Item < ActiveRecord::Base has_and_belongs_to_many :events end class Event < ActiveRecord::Base has_many :items end 项目型号: c

我有两个模型。一个是
项目
模型,另一个是
事件
模型。
我需要做的是:

项必须“签出”到事件。
事件
将显示所述事件之外的所有
项目
。事件结束后,用户将再次检查
项。您应该仍然能够看到上述事件中的所有项目

这就是我当前的型号:

class Item < ActiveRecord::Base
   has_and_belongs_to_many :events
end
class Event < ActiveRecord::Base
   has_many :items
end

项目型号:

class Item < ActiveRecord::Base
   has_and_belongs_to_many :events
end
class Event < ActiveRecord::Base
   has_many :items
end
class项
事件模型:

class Item < ActiveRecord::Base
   has_and_belongs_to_many :events
end
class Event < ActiveRecord::Base
   has_many :items
end
class事件

我在别处读到,我可以有这样一个模型,我可以使用:虽然。然后,该模型将拥有每个事件拥有的所有项

事件列表

class EventList < ActiveRecord::Base
   belongs_to :item
   belongs_to :event
end
class事件列表
我希望URL路由看起来像:

domain.com/Event/:id/items/

domain.com/Event/:id/items/(签入或签出)


这是正确的做事方式吗?我是否应该有另一个表并使用
:虽然=>名称来处理此特定问题

你把两者混在一起了。如果您使用的
具有且属于多个
模型,则这两种模型都应该这样定义。即

Item Model:

class Item < ActiveRecord::Base
  has_and_belongs_to_many :events
end
项目模型:
类项
事件模型:

class Event < ActiveRecord::Base
   has_and_belongs_to_many :items
end
class事件
如果您想使用
:通过
表,您只需使用
就可以定义这两个表

至于你应该用哪一个。他们都是对的。下面的链接解释了何时使用其中一种。(基本上,如果您想处理联接表,请使用
:通过
方式,否则
有\u和\u属于\u多个
就可以了)