ruby-on-rails - 我想将字符串和数组数据放入Ruby on Rails中的sqlite3中

标签 ruby-on-rails database sqlite cloud9-ide

嗨,我是编程新手,但我尝试制作自己的服务

我正在使用 cloud9 Ide、Ruby on Rails 和 sqlite3

无论如何,我将解析字典的数据,并且我将像这样设计数据库(仅作为示例)

        [col-1] [col-2] [col-3]
[row-1]  fruit   apple  [a,p,p,l,e]
[row-2]  fruit  kiwi    [k,i,w,i]
   ...
[row-50] flower  lily   [l,i,l,y]
[row-51] flower  rose   [r,o,s,e]
  ...

3 列和数千行

为了给您提供更多详细信息,当用户在文本区域中键入“fruit”时,我想显示从“apple”到“kiwi”的单词列表!!

我了解了如何存储只有用户这样提交的“字符串”

class CreateFans < ActiveRecord::Migration
  def change
    create_table :fans do |t|

      t.string :username

      t.timestamps null: false
    end
  end
end

但是我真的不知道如何存储自己的数据
我想知道如何添加列和行以及存储本地数据,而不是用户输入!

实际上,我昨天学习了阅读 .xlsx 文件并通过 gem 'roo' 在 ruby​​ on Rails 中显示,但我不知道如何在数据库中正确使用它。我想知道还有其他选择...

感谢您阅读我的问题,如果您给我建议,我将不胜感激:)

最佳答案

您可以通过迁移向数据库添加列。

不必必须仅来自用户输入。

例如,您可以进行迁移...

class CreateMyWord < ActiveRecord::Migration
  def change
    create_table :my_words do |t|
      t.string :genre
      t.string :word
      t.string :letters
      t.timestamps null: false
    end
  end
end

当您定义模型时,您指定属性letters实际上是一个数组...

class MyWord < ActiveRecord::Base
  serialize :letters
end

serialize 会在存储记录时自动将数组转换为字符串表示形式,并在检索记录时自动将其转换回来。

然后,您可以自己在 seeds.db 文件中填充该表,您可以使用命令 rake db:seed

执行该文件

种子数据库可能看起来像......

my_initial_words = [
                    ['fruit', 'apple', ['a','p','p','l','e'],
                    ['fruit', 'kiwi', ['k','i', 'w', 'i'],
                    ...
                   ]

my_iniital_words.each do |word_data|
  MyWord.create(genre: word_data[0], word: word_data[1], letters: word_data[2])
end

请注意,如果单词的字母总是与单词匹配,则数据库中实际上不需要列字母,只需在模型中拥有一个方法即可当您需要时,它会为您创建字母数组。

class MyWord < ActiveRecord::Base
  def letters
    word.split('')
  end
end

关于ruby-on-rails - 我想将字符串和数组数据放入Ruby on Rails中的sqlite3中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32265077/

相关文章:

ruby-on-rails - Rails 在 database.yml 中为 SQL-Server 加密数据库密码

Rails 重定向后 Javascript 未执行

ruby-on-rails - 如何在 ruby​​ 交互式 shell 中有多行?

android - 如何将数据库条目 "12"解析为日期格式为 "12"而不是 "0"

sqlite - SQLite字段大小限制

ruby-on-rails - Rails 方法只返回一条记录,返回多条记录时抛出异常

mysql - 保持数据库连接是否更好?

mysql - 比较 MySQL 中的变量 VS 数组

c# - 如何将 PropertyBag 类存储到数据库中

c# - 共享数据库 XML vs SQLite vs SQL Server CE