在项目中有这么个需求,我们有很多表结构都是一样的,例如:a_table,b_table,c_table
但是如果我每个一样的表都去建立一个相应的MODEL,比较浪费,后来找到一个不错的方法,动态的创建MODEL,拿来与大家分享,希望可以帮助到大家。
module Dynamic
class << self
def klass(table_name)
tname = class_name_from_table(table_name)
const_missing(tname)
rescue NameError
define_klass(table_name)
end
def objeck(table_name)
klass(table_name).new
end
private
def class_name_from_table(table_name)
Inflector.camelize(table_name)
end
def define_klass(table_name)
tname = class_name_from_table(table_name)
class_def = <<-end_eval
class #{tname} < ActiveRecord::Base
set_table_name('#{table_name}')
end
end_eval#此处加入到代码后出错,去掉空格后就好了
eval(class_def, TOPLEVEL_BINDING)
const_get(tname)
end
end
end
上面这段代码放到libs包下,新建一个ruby module,然后加入以上代码。
使用的时候,如下:
table_name = "a"
#直接就可以用了,很方便吧
Dynamic.klass(table_name).find(:all)
#新建了个对象
Dynamic.objeck(table_name)
分享到:
- 2008-01-15 13:14
- 浏览 1470
- 评论(2)
- 论坛回复 / 浏览 (1 / 3158)
- 查看更多
相关推荐
在Model2中,通常使用JSP(JavaServer Pages)来创建动态网页。对于用户注册登录,视图层会包含注册表单和登录表单的JSP页面,用于接收用户输入,显示注册或登录的结果,并可能包含一些提示信息,如错误消息或成功...
在JSF(JavaServer Faces)框架中,动态创建按钮并绑定事件是一项常见的需求,尤其是在构建交互性强、可自定义的用户界面时。JSF提供了一种灵活的方式,允许开发者在运行时根据业务逻辑生成和管理组件,包括按钮。...
- **运行时错误**:列出了在运行 WMBasic 程序过程中可能遇到的各种错误消息,包括通用错误和特定于 Working Model 的错误。 - **编译错误**:解释了在编译阶段可能出现的问题及相应的错误消息。 - **平台差异**:...
以上是ASP.NET个人项目中常见的一些问题和解决方案,实践中可能还会遇到其他挑战,如性能优化、错误处理、权限控制等,都需要根据具体项目需求进行妥善处理。掌握这些技巧和方法,能有效提升项目的开发效率和质量。
在Silverlight开发过程中,我们时常会遇到这样一个关键组件——System.ComponentModel.Composition.Initialization.dll。这个动态链接库(DLL)文件是微软.NET Framework中用于实现元数据驱动的组件组合的重要组成...
1. 游戏界面:利用Qt的QGraphicsView和QGraphicsScene模块,可以创建出动态、交互性强的游戏场景,玩家可以通过鼠标或键盘与游戏中的金币进行交互。 2. 关卡设计:游戏设有20个关卡,每个关卡有不同的布局和挑战,这...
JavaWeb项目是面向初学者的一个综合实践平台,它涵盖了Web开发中的多个重要知识点,包括但不限于前端界面设计、后端逻辑处理、数据库交互以及服务器配置...在这个过程中,遇到问题并解决问题,将对个人的成长大有裨益。
【Java Servlet基础练习小项目】是一个面向初学者的实践教程,旨在帮助学习者掌握Java Servlet技术的...在实践中遇到问题,可以参考相关的Java Servlet教程,以及JDBC和Web开发的文档,以增强理解和解决问题的能力。
《jsp项目开发实录》是一份...此外,提供视频教程链接,使得学习更加直观,有助于解决实际操作中遇到的问题。通过这样的实录学习,学习者不仅可以提升JSP技术,还能积累实际项目开发经验,为未来的工作打下坚实基础。
在"PHP小型smarty项目"中,我们可能会遇到以下一系列的知识点: 1. **Smarty模板引擎**: Smarty是PHP的一种模板技术,它提供了一种方式将HTML模板与PHP代码分开,使得程序员可以专注于编写后端逻辑,而设计师则可以...
**说明文档TXT**:此文档可能详细解释了项目的开发过程、技术栈的选择、安装部署步骤、使用说明以及可能遇到的问题和解决方案。对于后续的维护和升级,这份文档至关重要。 **TheFirst和TheLast**:这两个文件名可能...
在ums_mvc项目中,JSP文件通常用于创建用户交互的界面,如登录页面、用户信息展示页面等。 3. **JavaBean**:JavaBean是符合一定规范的Java类,通常用作数据容器,封装了业务逻辑或数据属性。ums_mvc项目中的...
在本文中,我们将深入探讨Model1架构、JSP技术以及如何理解和使用这个简单的BBS源代码。 首先,让我们理解什么是Model1架构。在Web应用程序开发中,Model1是一种基本的MVC(模型-视图-控制器)架构变体,主要用于...
8. **视频讲解**:如果在步骤上遇到困难,提供视频讲解是一种很好的辅助学习方式,能直观地展示每个步骤的实现过程,帮助开发者解决实际操作中的问题。 这个项目对于学习和实践Java Web开发来说是一份宝贵的资源,...
在这个"手机家园"项目中,学员可能会遇到以下知识点: 1. **Servlet与JSP的交互**:学员需要了解如何通过Servlet来处理HTTP请求,然后将数据传递给JSP页面进行展示,或者从JSP页面接收用户输入并进行业务处理。 2....
1. **JSP技术**:JSP是JavaEE的一部分,用于创建动态网页。它允许开发者在HTML页面中嵌入Java代码,使得网页可以根据服务器端的数据进行动态渲染。在这个案例中,JSP文件可能包含了用户界面的布局、表单处理以及与...
在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它是Java平台上的一个重要组成部分,特别是对于J2EE(Java 2 Platform, Enterprise Edition)应用来说。本项目实例聚焦于通过JSP进行实际的Web...
【标签】"java web" 进一步确认了这些项目的核心技术,Java Web涵盖了Servlet、JSP(JavaServer Pages)、JavaBeans、JSTL(JavaServer Pages Standard Tag Library)、MVC(Model-View-Controller)架构、Spring...
《Django实战》这本书是许多Python开发者学习Django框架的重要参考资料。...在实践中遇到问题时,可以参考源码中的解决方案,或者查阅书籍中的相关章节来获取更详细的解释。这将是你提升Django技能的重要步骤。