我需要使用 Ruby on the Rails
框架将角色统计信息存储到 MySQL
数据库中。似乎我不能在不转换到 PostgreSQL
的情况下在我的数据库中使用数组,这是我目前无法做到的。所以,我认为动态变量名是关键,但我不确定如何创建它们。目前我的代码如下所示:
class CreateInventories < ActiveRecord::Migration
def change
create_table :inventories do |t|
t.string :user_name
t.string :char_name
t.string :char_item1
t.string :char_item2
t.string :char_item3
t.string :char_item4
t.string :char_item5
t.string :char_item6
t.string :char_item7
t.string :char_item8
t.string :char_item9
t.string :char_item10
t.string :char_item11
t.string :char_item12
t.string :char_item13
t.string :char_item14
t.string :char_item15
t.string :char_item16
t.string :char_item17
t.string :char_item18
t.string :char_item19
t.string :char_item20
t.timestamps null: false
end
end
end
显然这很糟糕。任何人都可以告诉我一种整理它的方法,这样它就不会使用 20 行代码来创建真正应该只有一个变量的东西吗?
最佳答案
这是未经测试的,但它是动态生成字符串或符号的基础:
create_table :inventories do |t|
t.string :user_name
t.string :char_name
20.times do |i|
t.string "char_item#{ 1 + i }".to_sym
end
t.timestamps null: false
end
关于mysql - Ruby 中的动态变量名称(在 Rails 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34361138/