fif*_*uri 11 ruby-on-rails backbone.js
我有几年的Rails开发和几天的Backbone.js经验.在这几天之后,我想我已经进入了Backbone.js的味道.我想知道在背面开发Backbone.js富客户端脚本的重复类型.许多模型在Backbone侧部分重新实现(模型结构和验证).
你知道工具,宝石会处理这种重复吗?或者一般来说解决这个问题是否有意义?
对不起潜在的推测性问题.我想知道是否有人试图解决Rails/Backbone模型重复的问题.
您不必为 Backbone 创建重复的模型架构,尽管这通常是最简单的方法。(如果你要走这条路,有一些 js 扩展可以添加 has_many 和诸如此类的东西:https: //github.com/dbrady/ligament.js和https://github.com/PaulUithol/Backbone-relational)
免责声明:不要做以下事情,这很糟糕。
但是您可以将任何 JSON 传递到您喜欢的主干,并将其称为“模型”,并创建一个单独的控制器来处理保存您放入其中的任何内容。如果您想将一组 JSON 发送到主干并将其保留在一个模型中,这可能会更混乱,但会更简洁。
例子:
# controller
def index
@json = User.first.to_json(:include => {:address => {}, :contacts => {})
end
Run Code Online (Sandbox Code Playgroud)
将 JSON 发送到主干,你就得到了一个具有嵌套关系的对象,尽管如果没有某种方式来维护关系,它对 Backbone 来说实际上毫无意义,所以你必须提取你想要在 JavaScript 中处理的位,将它们放回一起,并使 Rails 中的创建/更新操作非常适合处理这个问题......
但重点是你可以任意创建你想要的任何类型的 JSON 对象——因为 Backbone 对 Rails 会用它做什么一无所知。Backbone 只需获取一个 URL 来管理其 HTTP 请求,并相信服务器已设置为可以处理它向其抛出的任何内容。因此,请随意发送和接收您想要的 JSON 对象类型 - 只是要注意,如果它们跨模型,您将必须弄清楚如何在 Rails 中处理它们。
事实上,不幸的是,仅仅在 Backbone 中坚持下去并复制许多模型架构就干净得多。
我认为迄今为止我见过的最神奇的 Backbone 就是上面列出的那些 js 关联库。Backbone 仍然相当笨重。
有一个名为“backbone-rails”或“rails-backbone”的宝石(有一个奇怪的项目冲突,使其变得模糊),由“codebrew” https://github.com/codebrew/backbone-rails,它将生成一些不错的咖啡脚本供您使用。这可能是最简单的方法,但并不像您希望的那么简洁,因为它是一个代码生成器。
如果有人可以对此进行更多说明,或者完全反驳我,请这样做!我的骨干知识也处于中间阶段。
PS 您可能不想依赖 Backbone 进行验证...:) 容易破解。如果您在 JS 中添加它们以减少错误提交的数量,那么您将不得不忍受重复验证。