开始使用 Ruby on Rails 时遇到问题
-
13-09-2019 - |
题
我想知道是否有人可以解决我遇到的一些问题?我创建了一个 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)
解决方案
默认情况下模型应该是空的,因为数据库模式保存在 schema.rb
文件并使用进行管理 迁移.
从您的回答中,我了解到您正在寻找一个预打包解决方案来编写一些配置并获取从控制器到为您准备的管理的所有内容。抱歉,Rails 不向您提供此功能。如果您想要一个管理部分,您实际上必须对其进行编码。
这包括:
- 创建您的视图和模板
- 创造你的行动
- 绘制您的路线
- 编写你的测试
脚手架只为您提供一个起点,但这是一个您应该适应并扩展以满足您的需求的起点。
如果您希望脚手架根据您的数据库表自动生成初始视图,您可以将参数传递给命令行工具
ruby script/generate scaffold user name:string age:integer
但是,如果您想稍后添加新字段,则必须编写新的迁移并相应地编辑您的视图/操作。
其他提示
滑轨设计用于通过位于db/migrate
的迁移做好了所有的“创造”数据库的独立性。
要创建你然后只需运行rake db:migrate
适当的数据库表和任何迁移将被执行以创建必要的数据库表。
有关的更多信息的好地方是滑轨指南其具有一个示例应用程序的工作通过
不隶属于 StackOverflow