gpt4 book ai didi

ruby-on-rails - ruby rails : Proper Syntax for 2 dimensional Array in Database

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:56 26 4
gpt4 key购买 nike

我打算用ActiveRecord 向数据库中插入一个二维数组。

原因:我希望用户选择多种语言和相应的语言级别(比如他们说得有多好)。我不想为语言和 language_levels 设置两个字段,我希望这两个字段从一开始就连接在一起。当然,我可以稍后在模型级别将它们连接在一起,但我想先尝试另一种方式。

例子:

[ ["English",2],  ["German",1], ["Japanese",1] ]

我已经能够存储一维数组,但在这些方面并不走运。尝试在强参数中使用诸如 (languages: [][]) 之类的东西来使它们可访问是行不通的。

谢谢

最佳答案

我理解您想要以最小的努力完成此操作的意图,但您绝对应该考虑以规范化的方式来存储内容。

意图是——用 lang 做什么。一旦需要重命名一种语言,所有用户的技能?假设您一开始使用的是中文,但后来您决定保留其中两种语言,中文(繁体)中文(简体)。您现在必须编写一个容易出错的更新脚本。

为了保持语言规范化,我会保留三种模型以保持一致性:

class User < ActiveRecord::Base
has_many :language_skills
has_many :languages, through: :language_skills
end

class Language < ActiveRecord::Base
has_many :language_skills
has_many :users, through: :language_skills
end

class LanguageSkill < ActiveRecord::Base
belongs_to :user
belongs_to :language
end

关于ruby-on-rails - ruby rails : Proper Syntax for 2 dimensional Array in Database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20922742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com