ruby-on-rails - 使用 Rails 创建 RESTful API 是否遵循 MVC 架构?

标签 ruby-on-rails asp.net-mvc model-view-controller

我刚刚被分配到的一个应用程序在 UI 层使用 ASP.NET MVC 框架。这让我想到了 Ruby on Rails 及其 MVC 架构。

当我帮助使用 Rails 构建 RESTful API 时,我并没有真正使用 View ...只是用于 RESTful 端点和模型的 Controller 。

这是否意味着构建在 Rails 上的 RESTful 端点不遵循 MVC 架构,尽管 Rails 应该遵循 MVC 架构?

或者 Rails 遵循 MVC 架构这一事实是否意味着构建在 Rails 上的 RESTful 端点也遵循 MVC 框架,即使实际上没有 View ?

我对此感到疑惑,因为我当前的应用程序为其 UI 使用 ASP.NET MVC 框架,但只有一个 View 和一个 Controller ,并且对 Web 服务进行 AJAX 调用以获取要显示的数据。我心想它没有遵循 MVC 结构,这让我经过深思熟虑。

最佳答案

您的 Rails API 仍然是 MVC。 “ View ”组件可能只是隐式生成的,可以这么说。也就是说,Rails 有时会使用一组默认行为来生成隐式 View 。例如,在 API 中,如果您使用 respond_to :jsonrespond_with(@my_object),那么将自动生成一个 JSON“ View ”作为来自 @my_object.to_json。您可以通过重写 @my_object.as_json 方法来重写此“ View ”...或者您可以花点心思向您的对象添加一个 Presenter 层,并让它生成 JSON“ View ”代码。无论哪种方式,即使您始终没有显式 View 模板,它仍然是 MVC。

此外,还存在一些 Rails gem,例如 RABL ,如果您喜欢那种风格,它会使“ View ”组件/方法更加明确。

关于ruby-on-rails - 使用 Rails 创建 RESTful API 是否遵循 MVC 架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29376040/

相关文章:

javascript - Knockout.js 更新数组中的数组

model-view-controller - 使用 Grails 时,我应该关心 Open Session in View 吗?

javascript - 如何通过ajax传递包含数据和文件的对象数组并在mvc Controller 中检索?

c# - 在 C# 中将 Excel XML 2003 工作表文件转换为 .XLSX 文件

asp.net-mvc - 从MVC中的资源获取[Display]属性值

php - 无法在 Laravel 中运行 php artisan migrate

php - 如何利用 MVC 原则开发注册表单?

ruby-on-rails - Bootstrap glyphicons 没有显示 rails app--path 问题?

ruby-on-rails - 在Rails中填充开发数据库的最佳方法

ruby-on-rails - accepts_nested_attributes_for 链接到现有记录,而不是创建新记录