1

我想知道是否有人可以解决我遇到的一些问题?我创建了一个 Rails 应用程序:

rails myapp -d mysql
cd myapp
haml --rails .
rake db:create:all

然后我想用一个mysql客户端来创建表。让我们说用户和客户。客户也是用户,因此您具有如下架构:

users
----------------
id         int, not null, primary key, auto increment
first_name varchar(50) not null
last_name  varchar(50) not null
email      varchar(50) not null unique
password   varchar(50) not null
created_at datetime not null
updated_at datetime not null

customers
----------------
id         int, not null, primary key, auto increment
user_id    int, unique
-- some other stuff that is customer specific

我需要运行哪些 Rails 脚本命令才能在我的 Rails 应用程序下创建并完全填写模型、视图和控制器?我试过这个:

ruby script/generate scaffold user
ruby script/generate scaffold customer

创建文件但模型为空:

class User < ActiveRecord::Base
end

这是怎么回事?另外,我想创建一个管理部分来管理东西。我发现我需要为这些添加路线:

map.namespace :admin do |admin|
  admin.resources :users
  admin.resources :customers
end

我还需要什么才能让管理部分正常运行?这里还有我正在运行的 ruby​​/gems 版本:

ruby 1.8.6
rails 2.3.5 & 2.3.2 <- I'm using 2.3.2 because haml
  wasn't working (or some other plugin) with 2.3.5
haml 2.2.15
rspec 1.2.9 <- I saw from another thread that I might need
  this when creating an adminstration section (rspec_controller etc)
4

2 回答 2

3

默认情况下,模型应该是空的,因为数据库模式被保存到schema.rb文件中并使用迁移进行管理。

从您的回答中,我了解到您正在寻找一个预打包的解决方案来编写几个配置并为您准备从控制器到管理的所有内容。很抱歉,Rails 不提供此功能。如果您想要一个管理部分,您实际上必须对其进行编码。

这包括:

  1. 创建视图和模板
  2. 创建你的动作
  3. 映射您的路线
  4. 编写测试

脚手架只为您提供了一个起点,但这是您应该适应并扩展您的需求的起点。

如果您希望脚手架根据您的数据库表自动生成初始视图,您可以将参数传递给命令行工具

ruby script/generate scaffold user name:string age:integer

但是,如果您想稍后添加新字段,则必须编写新的迁移并相应地编辑您的视图/操作。

更多信息可在 Rails指南Wiki中找到。

于 2009-12-05T19:14:49.357 回答
0

Rails 专为独立于数据库而设计,所有“创建”都是通过位于db/migrate.

要创建适当的数据库表,您只需运行rake db:migrate并执行任何迁移以创建必要的数据库表。

了解更多信息的好地方是Rails Guides ,它有一个示例应用程序可供使用。

于 2009-12-05T19:13:04.677 回答