Ruby on rails Rails 4清单应用程序:数据库设计和嵌套表单的使用

Ruby on rails Rails 4清单应用程序:数据库设计和嵌套表单的使用,ruby-on-rails,database-design,Ruby On Rails,Database Design,我构建了这个应用程序,它运行良好,非常简单:。它允许您为指定设备计数(即库存量)的设备创建新条目 现在,尽管这是可行的,但有人告诉我,这需要以“每个位置”为基础。也就是说,你创建一个条目,你将有10个设备文本字段(如果确实有10个设备。这个数量永远不会改变,设备也不会改变),对于每个设备文本字段,你将输入该设备的计数。您将为下拉菜单选择位置。创建该条目后,您将拥有: -1地点 -列出了10台设备,所有设备都有自己的计数 我正在绞尽脑汁思考如何设计这些模型。我应该有条目和设备型号吗?单独的计数型号

我构建了这个应用程序,它运行良好,非常简单:。它允许您为指定设备计数(即库存量)的设备创建新条目

现在,尽管这是可行的,但有人告诉我,这需要以“每个位置”为基础。也就是说,你创建一个条目,你将有10个设备文本字段(如果确实有10个设备。这个数量永远不会改变,设备也不会改变),对于每个设备文本字段,你将输入该设备的计数。您将为下拉菜单选择位置。创建该条目后,您将拥有:

-1地点

-列出了10台设备,所有设备都有自己的计数

我正在绞尽脑汁思考如何设计这些模型。我应该有
条目
设备
型号吗?单独的
计数
型号

嵌套表单是这里最好的方法吗


任何和所有的输入是感激的

听起来您最好使用
库存
加入模式(使用):


这将允许您创建一个新的
设备
,并通过它的
库存
获得它的
数量

我认为这个问题太宽泛了,但本质上您需要一个
属于
一个
位置
有许多
设备
的新模型,这是不是太宽泛了?我提供了一个示例应用程序,说明了我所拥有的以及我需要去哪里。谢谢你,这应该会有帮助:)我意识到这并不难,但我很难想象这个结构。嗨,里奇,谢谢你的详细回答。我知道您对连接模型的理解(我想在我的OP中还不清楚),但创建的不是设备,而是位置(可能更好的词是
Entry
)。每个条目将有:位置/名称、10个设备和10个计数。然后您可以查看索引页上的每个条目。
#app/models/inventory.rb
class Inventory < ActiveRecord::Base
   # id | device_id | location_id | qty | created_at | updated_at
   belongs_to :device
   belongs_to :location
end

#app/models/device.rb
class Device < ActiveRecord::Base
   has_many :inventories
   has_many :locations, through: :inventories
   accepts_nested_attributes_for :inventories
end

#app/models/location.rb
class Location < ActiveRecord::Base
   has_many :inventories
   has_many :devices, through: :inventories
end
#app/controllers/devices_controller.rb
class DevicesController < ApplicationController 
   def new
     @device = Device.new
     @locations = Location.all
   end

   def create
     @device = Device.new device_params
     @device.save
   end

   private

   def device_params
     params.require(:device).permit(inventories_attributes: [:qty])
   end
end

#app/views/devices/new.html.erb
<%= form_for @device do |f| %>
  <%= f.text_field :name %>
  <%= f.fields_for :inventories, Location.all do |i| %>
     <%= i.number_field :qty %>
  <% end %>
  <%= f.submit %>
<% end %>