专攻难题:Rails、MVC及最常用的Rails命令( 三 )
控制生成器
运行rails g controller 命令会提供一个控制文件(用于添加适当操作)和相应的视图文件夹:
railsg controller paintings
资源生成器
如果用户在在创建API过程中使用前端MVC架构 , 或只想手动创建视图 , resource生成器是编写代码的一个优选 。 创建Painting资源:
railsg resource Painting name image painter:belongs_to
因为没有为name和image 编写数据类型 , 因此默认情况下它是一个字符串 。 添加 painter:belongs_to 来指定两个表格的关系 , 并在paintings表格中设置一列 painter_id 。 也可以使用 references编写上述命令(结果一样):
railsg resource Painting name image painter:references
这是为不同模型编写相同命令的另一个例子:
railsg resource Answer content correct_answer:boolean question:belongs_to
凭借生成器 , 目前的应用程序拥有什么?
· 一个迁移文件 , 能够在生成器中为传递给它的属性创建一个新的数据库表
· 继承ApplicationRecord的模型文件(从Rails 5开始 , 见上述注意事项)
· 继承了ApplicationController的控制器文件
· 不带有视图模板文件的视图目录
· 视图helper文件
· 用于该控制器的特定JavaScripts的Coffeescript文件
· 用于控制器样式的 scss文件
· routes.rb文件内的完整资源调用
resource生成器是一种智能生成器 , 创建全功能资源所需的一些核心功能 , 同时不会导致过多代码膨胀 。
路由
文章插图
图源:unsplash
最后一项可能不太常见 。 通常resources:paintings被视作为一个“魔法”路由 , 它包含在应用程序中执行CRUD所需的全部RESTful路由 。 那么resources:paintings会转化成什么?用滤波器运行 rake routes 会比较简单 , 这样就只会呈现paintings的路由:
rake routes | grep painting
resources自动创建每个路由并使其对控制器可用 。 打开paintings_controller.rb文件会很有趣:路由列表中出现的操作都不存在 。 它创建的代码非常少 , 只需添加应用程序需要的功能 。
Scaffold生成器
rails g scaffold User username:string
正确的命令可以创建有用的文件 , 设置路由和宏命令 。 希望本文能让你理解Rails的神奇之处 , MVC的定义和命令执行 。
文章插图
留言点赞关注
我们一起分享AI学习与发展的干货
如转载 , 请后台留言 , 遵守转载规范
- 阿尔法|击败李世石的AI公司,又研发出生物版“阿尔法狗”:破解50年生物学难题
- 效果|术业有专攻!论自拍效果如何,还得看这三款机型
- 破解|“阿尔法狗”亲兄弟AlphaFold破解预测蛋白质结构50年难题
- 难题|西北完测:小技改巧解井口抬升难题
- 人工智能|最新消息,人工智能解决了长达50年的生物学难题,一个巨大的突破
- 核查|进口原料难题解决 生产供货踏实了(图)
- 芯片与光刻机依旧是存在的难题,难道是因为人才都向“钱”看了?
- 这 8 个良心电脑软件,帮你 3 分钟搞定文件管理难题
- 热评丨“携号转网”所有难题的关键点都在于“服务”二字
- 巴基斯坦媒体:中国何时能攻克光刻机难题?发展这项科技迫在眉睫