Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Backbone.js自定义休息路线_Ruby On Rails 3_Backbone.js - Fatal编程技术网

Ruby on rails 3 Backbone.js自定义休息路线

Ruby on rails 3 Backbone.js自定义休息路线,ruby-on-rails-3,backbone.js,Ruby On Rails 3,Backbone.js,我刚接触主干网,在经历了一些教程应用程序之后,我尝试了我的第一个应用程序 我想知道实现以下目标的最佳方法是什么 在后端轨道上 我有一个模型名业务,它是一个具有许多属性的复杂模型,它有一个关联的地址,有一个:地址,有一个化身和另一个档案pitchure等等 从我的前端,我希望能够获取和更新业务配置文件的特定部分,比如说,我只希望获取基本信息,包括姓名、类别和地址,而不是更新配置文件图片和化身 我在主干中看到的是,该模型具有save、update、fetch和destroy方法 如果我想使用其他方法

我刚接触主干网,在经历了一些教程应用程序之后,我尝试了我的第一个应用程序

我想知道实现以下目标的最佳方法是什么

在后端轨道上

我有一个模型名业务,它是一个具有许多属性的复杂模型,它有一个关联的地址,有一个:地址,有一个化身和另一个档案pitchure等等

从我的前端,我希望能够获取和更新业务配置文件的特定部分,比如说,我只希望获取基本信息,包括姓名、类别和地址,而不是更新配置文件图片和化身

我在主干中看到的是,该模型具有save、update、fetch和destroy方法

如果我想使用其他方法,如获取基本信息、获取个人资料、更新个人资料、图片,该怎么办?针对这些,我希望相关的视图得到相应的通知

这是我想到的

假设我想获取基本信息

将函数fetch_basci_info添加到主干模型

在该函数中,使用$.ajax向服务器发送自定义ajax请求 手动触发事件basicinfo:fetched 我的路由器内部功能

创建模型对象 创建一个新视图,比如BasicInfo视图,并将其传递给模型对象 在视图中绑定模型的偶数,比如model.bind'basicinfo:fetched',this.render 路由器初始化后,在路由器初始化中调用model.fetch_basic_info 因此,路由器被称为它创建视图绑定一个自定义事件并调用模型。fetch_basic_info请求被发送到服务器,响应被返回。I call set MANUAL在此处设置主干模型的属性。触发自定义事件后,将通知视图并呈现自身

这是我的第一个真正的主干应用程序,所以如果我正在做一些非常离谱的事情,请阻止我

你对此有何看法


感谢您的阅读和feedbcak。

我的第一个想法是,您将复制主干网已经提供的许多功能。我看不出你有什么理由要在客户端完全复制你的商业模式。为什么不将您的基本信息、概要文件等分解成单独的主干模型,并根据需要将它们应用到视图中呢

你想做的事情不是很安静。如果您试图这样做以节省资源或网络带宽,那么它几乎肯定是一个过早的优化-除非我们谈论的是数百或数千个领域-在这种情况下,有一个更好的解决方案

事实是,仅获取一张个人资料图片所使用的资源与获取50-100个字段所使用的资源几乎相同。是的,数据稍微多一些,但考虑到网络连接中90%的工作、延迟、资源和等待时间都来自于建立连接,实际上并没有节省那么多

另外,在数据库端,一个

从id=123的业务中选择*

使用的量仅比

从id=123的业务中选择profilepic

因为作业最困难的部分是建立到数据库的连接并找到正确的行。在那之后,它只是多一点数据-添加50个额外的列将对性能产生不明显的影响

只有当模型/表包含数百或数千个属性时,才会出现这种情况。在这种情况下,解决方案是将模型拆分为子模型。并通过REST单独处理它们。但它们应该是业务逻辑类型。例如,业务包含地址、员工、共享结构

我自己曾经是一个早熟的优化器。。。当我只需要1列时,不能返回10列。但是,如果您试图以可能需要的不同组合为每个数据子集编写web服务API,那么您的API实际上将不可用且无法维护。你也永远不会完成任何工作

如果您想从facebook的API上获取CocaCola的个人资料图片,您只需拨打:


并获取图片属性。如果你不需要其余的数据,谁在乎呢?它使事情保持简单、REST和易于维护。

分解是一个很酷的想法,但我不会写我的后端来支持这些模型吗?我想这和你的方法差不多。你打算如何处理你的单独取回方法等。。获取基本信息,获取个人资料,获取pictureConsider@reach4用户回答。如果您可以有一个模型,并且每个视图都可以修改它们需要的任何内容并保存它,那么无论是在客户端还是在后端,事情都会简单得多。如果幸运的话,你可以在以后进行优化。