【问题标题】:can I create an scaffold from my schema.rb on rails?我可以从我的 schema.rb on rails 创建一个脚手架吗?
【发布时间】:2013-05-26 10:15:36
【问题描述】:

我正在尝试为我创建的一个新表创建脚手架(包含所有方法和所有),它在我的数据库上,并且我已经添加到我的 schema.rb,但我不知道该怎么做,有人知道吗知道我应该运行的命令或类似的东西吗?我找到了从 db 到 schema 的选项,但没有从 schema.rb 到脚手架。

谢谢

【问题讨论】:

    标签: ruby-on-rails-3


    【解决方案1】:

    首先,我强烈建议您阅读这篇文章: Getting up and running quickly with scaffolding

    我不太确定我是否正确理解了您的问题。但据我所知,你肯定做错了什么。例如通过命令完成脚手架:

    rails generate scaffold User name:string title:string bio:text
    

    您写道,您已经在 DB 中创建了表。所以这表明我,你没有遵循脚手架,或更重要的 Rails 原则。如果您手动将表添加到数据库中。

    继续阅读入门指南,它会对您有所帮助。

    【讨论】:

    • 谢谢!!我尝试了类似的方法,但没有创建所有字段,我不确定在那之后我是否必须像我一样运行 bundle exec rake db:migrate ......但是缺少一些字段,现在没有任何工作
    • rails 生成后,您需要运行 rake db:migrate 。这将更新我们的数据库并在那里创建最新的表。
    【解决方案2】:

    您通常使用 schema.rb 作为查看数据库中表和列的便捷方式。

    Scaffold 在运行时会创建新表,例如 rails g scaffold Post name:string,其中 Post 是模型 (post.rb)、控制器 (posts_controller.rb) 和数据库表的名称,其列名称为是字符串。(在 rake db:migrate 之后在 schema 中查找)

    在您的项目中启动脚手架并找到架构以查看它的表已经到位。

    【讨论】:

      【解决方案3】:

      使用:

      scaffold -c -p db/schema.rb
      

      这将生成一个命令列表,您将执行这些命令来生成模型视图控制器组件。

      但是,这不会在模型上插入限定符(has_many、belongs_to 等)。

      我想知道是否有一个选项可以从 schema.rb 上列出的外键中启用它

      【讨论】:

        【解决方案4】:

        使用这个宝石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
        

        【讨论】:

          猜你喜欢
          • 2018-06-23
          • 2020-10-06
          • 1970-01-01
          • 2012-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-23
          • 1970-01-01
          相关资源
          最近更新 更多