【发布时间】:2013-05-26 10:15:36
【问题描述】:
我正在尝试为我创建的一个新表创建脚手架(包含所有方法和所有),它在我的数据库上,并且我已经添加到我的 schema.rb,但我不知道该怎么做,有人知道吗知道我应该运行的命令或类似的东西吗?我找到了从 db 到 schema 的选项,但没有从 schema.rb 到脚手架。
谢谢
【问题讨论】:
标签: ruby-on-rails-3
我正在尝试为我创建的一个新表创建脚手架(包含所有方法和所有),它在我的数据库上,并且我已经添加到我的 schema.rb,但我不知道该怎么做,有人知道吗知道我应该运行的命令或类似的东西吗?我找到了从 db 到 schema 的选项,但没有从 schema.rb 到脚手架。
谢谢
【问题讨论】:
标签: ruby-on-rails-3
首先,我强烈建议您阅读这篇文章: Getting up and running quickly with scaffolding
我不太确定我是否正确理解了您的问题。但据我所知,你肯定做错了什么。例如通过命令完成脚手架:
rails generate scaffold User name:string title:string bio:text
您写道,您已经在 DB 中创建了表。所以这表明我,你没有遵循脚手架,或更重要的 Rails 原则。如果您手动将表添加到数据库中。
继续阅读入门指南,它会对您有所帮助。
【讨论】:
您通常使用 schema.rb 作为查看数据库中表和列的便捷方式。
Scaffold 在运行时会创建新表,例如 rails g scaffold Post name:string,其中 Post 是模型 (post.rb)、控制器 (posts_controller.rb) 和数据库表的名称,其列名称为是字符串。(在 rake db:migrate 之后在 schema 中查找)
在您的项目中启动脚手架并找到架构以查看它的表已经到位。
【讨论】:
使用:
scaffold -c -p db/schema.rb
这将生成一个命令列表,您将执行这些命令来生成模型视图控制器组件。
但是,这不会在模型上插入限定符(has_many、belongs_to 等)。
我想知道是否有一个选项可以从 schema.rb 上列出的外键中启用它
【讨论】:
使用这个宝石https://github.com/frenesim/schema_to_scaffold
Usage: scaffold [options]
Generate a rails scaffold script for a given schema.rb
-h Displays help.
-p <path> It specifies a path to a folder or to a file.
-c Will copy the script to your clipboard. Requires xclip be installed on Linux.
-f Generates a factory_girl:model rather than a full scaffold.
-m Add migration (use if your schema comes from a different database)
Examples:
scaffold
scaffold -c -p ~/work/rails/my_app
scaffold -c -p ~/work/rails/my_app/db/schema.rb
【讨论】: