【问题标题】:Ruby on Rails - model from generate scaffold commandRuby on Rails - 来自生成脚手架命令的模型
【发布时间】:2017-05-17 02:00:58
【问题描述】:

我使用“rails generate scaffold Post title:string body:text”来创建模型和相关的控制器等。我惊讶地发现模型和控制器文件是空的。我认为模型文件将包含实例变量来存储每个帖子的标题和正文属性。有人可以向我解释为什么运行生成脚手架的 Post 模型文件是空的,即使数据项确实显示在数据库中。当我打开网页并转到 .../posts url 时,我可以看到我创建的那些的 json 列表。谢谢。

【问题讨论】:

  • 模型将为空,但控制器不应为空。
  • 你说得对,控制器不为空。我在那方面说错了。

标签: ruby-on-rails


【解决方案1】:

模型是 Ruby 类。他们与数据库对话、存储和验证数据、执行业务逻辑以及其他繁重的工作。

控制器负责解析用户请求、数据提交、cookie、会话和“浏览器内容”。

您的模型为空的原因是 Rails 不知道您希望模型做什么。它知道您需要基本的 CRUD 功能,因此它会相应地填充您的控制器。

【讨论】:

  • 我想这就是我有点困惑的原因。由于当控制器在数据库上执行 CRUD 操作以检索“Post”数据类型时,Ruby 使用模型类来存储数据,我原以为生成的 Post 模型类将至少包含标题和正文的占位符字符串属性而不是空的。我想这就是为什么我有点困惑。感谢您的回复。
  • 这个问答可能有助于您理解模型文件为空的原因:stackoverflow.com/questions/34701667/…
  • 感谢您的回复。他们让我进一步研究它,我能够自己解决问题。我忘记了 ruby​​ on rails 的根基是约定优于配置,并且基于父类 ActiveRecord::Base 使用您的模型名称“Post”并假设您希望它对相同的表执行查询名称,但纯粹的“职位”。以下链接帮助我提醒自己:api.rubyonrails.org/files/activerecord/README_rdoc.htmledgeapi.rubyonrails.org/classes/ActiveRecord/Base.html
猜你喜欢
  • 2011-12-18
  • 2011-10-09
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 2013-04-18
  • 2013-11-06
  • 2019-03-26
  • 1970-01-01
相关资源
最近更新 更多