首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Rails中实现查找表

在Rails中实现查找表
EN

Stack Overflow用户
提问于 2011-01-28 13:11:42
回答 3查看 6.6K关注 0票数 8

我目前正在使用(或尝试使用)查找表来表示包含枚举字符串的列。我与我的团队进行了广泛的讨论,以确保这是我们想要的方向,并决定继续下去,但不幸的是,我们中没有人知道如何使用迁移将查找表绑定到列,以及是否必须在模型/控制器/视图中进行更改以支持这种新行为。

我已经在谷歌上搜索了很多,但还没有找到这样做的好例子,所以我希望有人能告诉我一个很棒的链接,指向我在搜索中刚刚错过的一个教程,或者描述一下如何做到这一点。我也很想知道是否有一个非官方(或官方)的铁路模式。

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-10 13:35:18

我遇到了与您相同的问题,并通过创建一个gem来解决它,该gem将一个动态查找表透明地添加到模型中。我在这里写了一篇博文:http://www.codelord.net/2011/08/09/guest-post-lookup-tables-with-ruby-on-rails/

代码在这里:https://github.com/Nimster/RailsLookup

票数 3
EN

Stack Overflow用户

发布于 2011-01-28 18:11:11

如果您正在寻找一种轻量级的方法来对枚举/配置进行建模,而无需创建单独的表,那么一定要查看ActiveHash:

https://github.com/zilkey/active_hash

票数 5
EN

Stack Overflow用户

发布于 2021-04-27 11:18:11

我知道这是一个古老的问题,但由于它仍然是谷歌上最热门的,我想我应该分享我的解决方案,它被包装成宝石。看一看https://github.com/blackrat/acts_as_enumeration

从自述文件中:

因此,如果数据库表有一个名为"name“的列,则声明

acts_as_enumeration :名称

将选择该列中的所有项,并在散列中将它们映射到它们的主键值。

此外,它还创建实例方法is_#{ key },其中key是该列中的所有值,is?(数组)和is_not?(数组)检查该数组中的类型。

保持name作为我们的列示例,类方法id_for_name将返回该映射的主键值,valid_name?(值)将表示表是否包含具有该值的name列中的and条目。

最后,方法缺失允许方法的is_和is_not链接,例如is_paul_or_michael_or_luke?其效果与(is_paul?|| is_michael?|| is_luke?)或者是?(:paul,:michael,:luke)和is_not_paul_or_michael_or_like,效果与!(is_paul || is_michael?|| is_luke?)或者!是?(:paul,:michael,:luke)

注意:由于method_missing使用的机制,如果有人的名字实际上是"not bruce",组合查询不能将其用作第一个元素。即“不”不仅仅是“不是布鲁斯”。

那么is_not_bruce_or_paul的组合呢?一定要写成is_paul_or_not_bruce吗?以达到预期的效果。is_not_not_bruce_or_paul很好,但发生这种情况的可能性就像在Monty Python素描之外有人实际称为“不是布鲁斯”一样。

(这意味着它可能会支持,所以在更改代码以支持新条目之前,尝试只更改顺序)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4828568

复制
相关文章
Angular 组件动态传入模板
比如 ng-zorro项目中的 BackTop回到顶部 组件就支持自定义模板。 默认时可以使用<nz-back-top></nz-back-top>。获得这个图标。
mafeifan
2018/12/28
1.9K0
JavaScript框架比较:AngularJS vs ReactJS vs EmberJS
选择最适合项目需求的JavaScript框架,可以提高你发布有竞争力的web app的能力。 最后,你对基于JavaScript的app或网站找到了一条奇妙的思路。选择正确的框架可能对你项目的成功有着
前朝楚水
2018/04/03
12.7K0
JavaScript框架比较:AngularJS vs ReactJS vs EmberJS
《Ext JS模板与组件基本框架图----组件》
本节主要从七个方面讲解组件,组件时什么,它的作用,它的构架,以及怎么创建和周期还有常见的配置项,属性方法和事件以及其层级是什么都进行整理,希望对大家有帮助。
yaohong
2019/09/11
1.6K0
Vue组件化 模板 语法糖 函数 父子组件通信
支持:String、Number、Boolean、Array、Object、Date、Function、Symbol
有勇气的牛排
2023/06/25
2110
《Ext JS模板与组件基本知识框架图----模板》
最近在整理Ext JS的模板和组件,在参考《Ext JS权威指南》,《Ext JS Web应用程序开发指南》,《Ext JS API》等相关书籍后才写下这篇《Ext JS模板与组件基本知识思维导图》,由于篇幅较长,所以必须肢解与各位分享。想要《Ext JS模板与组件基本知识思维导图》原文档的可以与我联系。
yaohong
2019/09/11
3.2K0
Angular快速学习笔记(3) -- 组件与模板
1. 显示数据 在 Angular 中最典型的数据显示方式,就是把 HTML 模板中的控件绑定到 Angular 组件的属性。 使用插值表达式显示组件属性 要显示组件的属性,最简单的方式就是通过插值表达式 (interpolation) 来绑定属性名。 要使用插值表达式,就把属性名包裹在双花括号里放进视图模板,如 {{myHero}}。 import { Component } from '@angular/core'; @Component({ selector: 'app-root', te
JadePeng
2018/05/28
15.3K0
小程序开发实战(5):组件复用利器-模板
根据我们前面讲解的知识,很容易看出,这段布局代码的作用是绘制两行带背景色的方块,效果如图1所示。
蒙娜丽宁
2020/07/09
6800
小程序开发实战(5):组件复用利器-模板
设计模式——组件协作模式之模板方法模式
<2>、早绑定与晚绑定 结构化软件设计的流程是一种早绑定的写法,Library 写的比 Application 早,写得比较晚的调用实现比较早的程序就叫做早绑定;
Gnep@97
2023/08/10
1800
设计模式——组件协作模式之模板方法模式
2套后台模板HTML+整套Easyui皮肤组件-后台管理系统模板
最近又对之前的easyui主题做了点更新,自己挺喜欢layui风格的,正好赶上layui官方下线,所以就在之前基础上增加了一套仿layui风格的easyui主题,easyui1.5.0-1.10.0都可以用,修复了一些小错位及bug,全部组件都按照layui风格进行样式调整,下面是部分页面截图:
全栈程序员站长
2022/10/01
5.2K0
2套后台模板HTML+整套Easyui皮肤组件-后台管理系统模板
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
图论 最短路 SPFA 1 #include<cstdio> 2 #include<queue> 3 #include<cstring> 4 using namespace std; 5 c
attack
2018/04/12
32.6K0
【腾讯云 Cloud Studio 实战训练营】新手小试使用Cloud Studio 搭建移动端 H5 页面(Vue框架)
代码开发随着云计算技术的不断发展,云 IDE 也应运而生,以下是云 IDE 的一些特点:
gpsgisrs
2023/08/07
3200
【腾讯云 Cloud Studio 实战训练营】使用 Cloud Studio 快速构建 Vue + Vite 完成律师 H5 页面
Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个稳定的云端工作站。
用户10701426
2023/08/26
2850
【腾讯云 Cloud Studio 实战训练营】使用 Cloud Studio 快速构建 Vue + Vite 完成律师 H5 页面
【愚公系列】2022年02月 微信小程序-组件模板和组件样式
组件模板的写法与页面模板相同。组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上。
愚公搬代码
2022/02/28
3560
uni-app自定义弹窗模板uniPop组件
uni-app自定义弹窗uniPop.vue模板|uniapp仿微信弹窗/仿ios弹窗效果|msg信息框|alert对话框|loading提示框
andy2018
2019/09/28
24K9
uni-app自定义弹窗模板uniPop组件
如何实现 CLI 通过模板批量生成组件文件?
上一篇 《如何用 Node.js 实现一个微型 CLI》 中介绍了如何使用 CLI 以及如何实现一个简单的问答式CLI。在文章的最后也提到我对于目前这个 CLI 还有一些想法以及一些可以改进和优化的地方,所以现在我来兑现了。
林小帅
2020/05/28
9280
如何实现 CLI 通过模板批量生成组件文件?
【腾讯云Cloud Studio实战训练营】用Vue+Vite快速构建完成律师H5页面
Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能在线编程。
亦世凡华、
2023/08/14
2760
【腾讯云Cloud Studio实战训练营】用Vue+Vite快速构建完成律师H5页面
17、将数据渲染到组件(列表渲染、模板语法、父子组件之间的传值)
(1)v-for语法 https://cn.vuejs.org/v2/guide/list.html 我们用 v-for 指令根据一组数组的选项列表进行渲染。v-for 指令需要使用 item in items形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名。
Ewall
2018/09/04
4.4K0
17、将数据渲染到组件(列表渲染、模板语法、父子组件之间的传值)
【腾讯云 Cloud Studio 实战训练营】体验搭建一个软件系统,无经验也能做开发
云计算技术的不断发展为代码开发带来了全新的体验,云 IDE(Integrated Development Environment)应运而生。腾讯云还与 CODING 联合推出的一站式云 IDE——Cloud Studio。我们将探讨云 IDE 的优势、特点以及体验,同时使用 Cloud Studio 快速搭建一个移动端 H5 页面,深入感受云 IDE 给我们带来的便利。
Swift社区
2023/07/31
1.4K0
【腾讯云 Cloud Studio 实战训练营】体验搭建一个软件系统,无经验也能做开发
调研技术组件模板V1 —— 以 Drools 为例
Drools通过 事实、规则和模式相互组合来完成工作,drools在开源规则引擎中使用率最广,但是在国内企业使用偏少,保险、支付行业使用稍多。
知一
2021/12/07
8090
调研技术组件模板V1 —— 以 Drools 为例
10+个很酷的VueJS组件,模板和实验示例
BootstrapVue Argon Dashboard PRO是BootstrapVue和Vue.js的高级仪表板。这是一种全新产品,它基于我们从头开始重新构建的最新框架结构,这种结构旨在使产品更直观,更具适应性,并且更易于定制。让Argon以其酷炫的功能给你带来惊喜,让你的项目达到一个全新的水平。
前端达人
2020/06/24
2.2K0

相似问题

addEventListener(“事件”,回调)与addEventListener(“事件”,函数(){回调() })

11

Javascript addEventListener回调逻辑

416

带有addeventlistener的回调函数

24

addEventListener :如何限制回调函数?

20

使用addEventListener理解javascript回调

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文