具体:
http://stackoverflow.com/questions/1200568/using-rails-how-can-i-set-my-primary-key-to-not-be-an-integer-typed-column/1434819#1434819
1.在迁移文件中加入:
create_table :users,{:id => false} do |t|
t.integer :iid
t.string :name
t.timestamps
end
execute "ALTER TABLE users ADD PRIMARY KEY (iid);"
不生成id,代替自己生成的id,然后执行sql
2.
在model中加入set_primary_key重新设置主键,然后添加before_create 用于回调User.create 函数生成id,User.new出来的是可以自己设置id的
class User < ActiveRecord::Base
set_primary_key :iid;
before_create :init_iid;
def init_iid
self.iid = ;
end
end
分享到:
相关推荐
### Rails3教程知识点详解 #### 一、Rails3简介与核心原则 **Rails3**是Ruby on Rails框架的一个重要版本,它对之前的版本进行了大量的改进和优化,使其更加强大和灵活。Rails3的核心设计理念围绕着几个关键的概念...
在本文中,我们将深入探讨Rails3中的常用命令,帮助你更高效地进行开发工作。 首先,新建一个Rails项目是开发的起点。你可以使用以下命令创建一个新的工程: ```bash rails new 工程名 ``` 这会生成一个包含所有...
在Rails 3中,这种哈希参数的方式被替换为链式调用的方法,例如`Article.order("published_at desc").limit(10)`。这种方法更加直观,使得代码更容易阅读和理解。 在处理条件查询时,旧的`:conditions`参数变成了`...
《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...
### CentOS环境下Rails 3开发环境搭建详解 #### 一、准备工作与环境配置 在开始部署Rails 3开发环境之前,我们需要确保系统上已经安装了一些基本的软件包和工具。这一步骤对于后续的Ruby和Rails安装至关重要。 ##...
3. **MVC架构**:Rails采用Model-View-Controller架构,书中详细解释了模型(Model)、视图(View)和控制器(Controller)之间的交互与职责。 4. **路由**:Rails的路由系统允许灵活地定义URL到控制器动作的映射,...
在Ruby on Rails中文指南中,你将全面学习到如何利用这个强大的框架来构建动态的、数据驱动的Web应用程序。 首先,让我们深入理解Rails的核心概念: 1. **路由(Routes)**:Rails的路由系统是应用程序的导航蓝图...
在Rails 3中,配置项通过类继承自`Rails::Application`,并且可以更灵活地进行定制。 ### 路由的改进 在路由处理上,Rails 3引入了更加简洁且直观的语法,使得路由定义变得更加容易理解。在Rails 2中,定义资源...
在 Rails3 中,rake 不仅用于基本的项目管理,还可以用于启动后台任务,这在处理耗时操作、异步任务或者批量数据处理时非常有用。后台任务可以避免阻塞用户界面,提高应用程序的响应速度。以下是一些关于如何在 ...
1. **ActiveRecord**:这是Rails框架中的ORM(Object-Relational Mapping)组件,它负责处理数据库操作。通过ActiveRecord,开发者可以使用面向对象的方式来操作数据,而无需编写SQL语句。 2. **ActionController**...
标题与描述均提到了"rails3-railsconf2010",这表明内容主要聚焦于Rails 3在2010年的RailsConf会议上的关键更新与特性。Rails(Ruby on Rails)是一种用Ruby语言编写的开源全栈web应用框架,以模型-视图-控制器(MVC...
安装过程中,遵循提示进行,确保选择自定义安装并勾选Rails相关的插件,以便在Aptana中获得对Rails的全面支持。 安装完成后,打开Aptana Studio,创建一个新的Rails项目。在“File”菜单中选择“New”然后点击...
3. **ActiveRecord**:在Rails 3中,ActiveRecord提供了更好的数据库抽象,支持更多的SQL特性,如JOINs、子查询和窗口函数。同时,ActiveRecord查询接口(ARel)使得构建复杂的数据库查询更加直观。 4. **...
总之,通过这个压缩包,你将能够将Rails中的默认确认对话框替换为SweetAlert,从而提升用户体验。这涉及到前端和后端的协调,以及JavaScript和Rails控制器之间的通信,是一个典型的全栈开发实践。在实际应用中,你...
在“Ruby Rails 3 Linda”这一主题中,我们将会深入探讨Rails 3版本的相关知识点。 1. **安装与设置**:首先,学习如何在本地环境中安装Ruby、RubyGems和Rails。Ruby版本管理器如RVM(Ruby Version Manager)或...
turbo-sprockets-rails3, 加速你的Rails 3资产 用于 Rails 3.2.x的涡轮链轮 通过只根据源文件的哈希来重新编译已经更改的资产,从而加快 Rails 3 rake assets:precompile的速度只编译一次以生成指纹和非打印的资产...
- 对Rails 3中的高级特性和最佳实践有所了解。 综上所述,《Beginning Rails 3》是一本非常适合Ruby on Rails初学者的入门书籍,不仅覆盖了Rails 3的基础知识,还包含了大量实用案例和技巧,能够帮助读者快速成长为...
在Rails项目中安装Mongrel通常通过RubyGems进行,这是一个Ruby的包管理器。首先确保RubyGems已经安装,然后在命令行执行以下命令: ```bash gem install mongrel ``` 安装完成后,可以通过`mongrel_rails`命令来...