如何在其中一列中预定义固定值

斯坦尼斯拉夫·沙吉·科库尔(Stanislav ShaggyKocúr)

我正在尝试建立一个虚拟仓库。数据库中的一列将包含仓库中应该具有固定值的位置列表。仓库分为DA到GA通道,每个通道又分为011到603位置。有一个横穿所有通道的横向通道,从而消除了某些位置(我实际上来自一个现有的现有仓库)。其他列是产品名称,产品重量和数量。我的迁移代码如下所示:

  def change
create_table :locations do |t|
  t.string :location # this column is supposed to have fixed values
  t.string :product   # name of a product like CocaCola Zero 8x2L
  t.decimal :product_weight
  t.integer :quantity

  t.timestamps
end

在一个单独的文档中,我创建了一个名为Locations的类,并且在该类中有一个名为defnumbers_letters的方法,该方法生成位置列表:

def numbers_letters
  @digit = 3
  aisle_number = 0
  odd_list = []
  even_list = []
  for @letter in "DA".."GA"
    aisle_number = aisle_number + 1
    @letter.next!
    while @digit < 604
      @digit += 8
      if aisle_number.odd?
        odd_list << @digit
      else
        even_list << @digit
      end
      @digit += 2
      if aisle_number.odd?
        odd_list << @digit
      else
        even_list << @digit
      end
    end
    @digit = 3
    odd_list.each do |odd|
      if odd > 350 && odd < 604
        od = format('%003d', odd)
        $list_of_locations << @letter + od
      elsif odd < 322 && odd > 3
        od = format('%003d', odd)
        $list_of_locations << @letter + od
      end
    end
    even_list.each do |even|
      if even > 300 and even < 604
        ev = format('%003d', even)
        $list_of_locations << @letter + ev
      elsif even > 3 and even < 262
        ev = format('%003d', even)
        $list_of_locations << @letter + ev
      end
    end
    odd_list = []
    even_list = []
  end
end

我的目标是制作一个页面,用户可以在该页面上从可用列表中选择一个位置,然后将产品,包装箱的重量和数量设置到该位置。稍后我想对分发操作进行编程,但是现在让我们解决这个问题。

当量8

在我看来,您并不是在寻找“默认值”,而是一种如何在视图表单中显示该值的可能性列表的方法。

# app/models/location.rb
class Location < ActiveRecord::Base

  def numbers_letters
    #  EdwardM code here
  end
end

# app/controllers/locations_controller.rb
class LocationsController < ApplicationController

  def new
    @location = Location.new
  end

  def create
    @location = Location.new params[:location]
    @location.save
    respond_with @location
  end
end

# app/views/locations/new.html.erb
<%= form_for @location do |f| %>
  First name: <%= f.text_field :product %><br />
  Last name : <%= f.text_field :quantity %><br />
  location  : <%= f.select(:location, @location.numbers_letters) %>

  <%= f.submit %>
<% end %>

```

这是您要找的东西吗?

如果是这样,请注意,也许您应该考虑有2个位置,而不是生成所有可能的字母数字组合的大名单

就像是:

def change
  create_table :locations do |t|
    t.string :aisle  # CG
    t.string :location  # number
    t.string :product   # name of a product like CocaCola Zero 8x2L
    t.decimal :product_weight
    t.integer :quantity
    t.timestamps
end

因此,您将设置:

location = Location.new(aisle: 'CG', location '123')
location.save

笔记:

@location.numbers_letters 只是示范,您可能应该考虑使用类似的类方法

class Location < ActiveRecord::Base
  def self.available_aisiles 
    "DA".."GA"
  end

  def self.available_locations
    '011'..'603'
  end
end

# and then call

Location.available_locations
Location.available_aisiles

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SELECT在其中一列中具有指定值的行

合并在其中一列中具有共同值的行

如何读取数据开始仅存储在其中一列中的 CSV?

如何在postgres的两列中添加唯一约束,其中一列的值为“ true”

如何在其中包含多个值的一列中将值一键化

如何在 Excel 中的不同目录中将每一行另存为单独的文件(在其中一列中引用目录名称)?

如何在Oracle中为列和固定值的组合赋予唯一约束?

如何从Pandas数据框中检索一个记录序列,该记录序列在其中一列的末尾包含某个值?

检查两列的值是否相同,然后在其中一列中用nan填充

如何根据其中一列中的值在文本文件中绘制数据

如何让 Google 表格根据其中一列中的值自动对行进行排序?

如何通过Python根据其中一列中的值过滤数据集

如何在 int MySQL 中插入多行,其中一列的值来自单个值列表,而其他列的值是常量

仅保留至少在其中一列中包含某些条目的行

如何返回行,其中一列中的文本值是MySQL中另一列中的文本值的一部分?

Excel 公式用于在两列中搜索一列中的唯一值并在另一列中搜索固定值

mysql - 如何在MySQL中仅在其中一个下对具有多个选择的列进行分组?

如何从R中的两个不同数据帧中添加两列,其中一列只是另一列的唯一值的子集

当其中一个只缺少一列时,如何在 postgresql 中合并两个表?

如何检查其中一列中是否存在value以及MySQL中哪一列中存在值?

从表中选择数据,其中一列中的值之和等于另一列中的值

弯曲2列,其中一列是固定宽度,另一列是宽度100%

如何通过其中一列中的每个值将一列随机数添加到数据框中?

如何在python中打印元组列表中一列的所有值?

如果在其中一列中发现了行,则从两列文件中删除行

如何在将其中一列设置为 DISTINCT 时选择多个列

如何在子查询中有 2 列但忽略其中一列?

如何在csv文件中写入文件,其中一列为字符串,另一列为字节

在pandas中插入行,其中一列在groupby中丢失某些值