0

我从服务中获取数据,然后将数据设置为我的 bean 对象,并希望在我的视图中使用相同的数据,现在在 rails 视图中以表单形式显示它。现在我想使用主干验证这个表单。

我是 Rails 和 Backbone 的新手。

请给我一个关于如何继续进行的想法。

4

1 回答 1

0

我想您可能对 Web 应用程序的工作方式感到困惑。Backbone 是一个客户端框架;它使用在您的用户浏览器中运行的 Javascript 代码。Rails 是一个服务器端框架;它使用在您的服务器上运行的 Ruby 代码。

鉴于所有这些,您的 Backbone 代码和 Rails 代码的定义必须完全分开。两者只能通过两种方式进行通信:

1) 您的 Rails 代码可以将<script>标签写入页面(在 .html.erb 文件中)并将变量数据放在那里;例如:

<script>
var myVarFromRails = '<%= someRailsVariable %>';
</script>

当它从服务器返回时(即当您查看页面的源代码时)将转换为:

<script>
var myVarFromRails = 'foo';
</script>

(假设 'foo' 是 的值someRailsVariable)。

2) 您的 Javacript 代码可以向 Rails URL 发出 AJAX 请求,Rails 代码输出的任何内容都会作为对您的 AJAX 请求的响应返回。换句话说,你可以这样做:

 $.ajax({url: someRailsUrl, complete: function(response) {
      // whatever the server sent back will be inside the "response" variable
 }});

除此之外,两者几乎完全分开,如果你想在它们中做同样的事情(例如验证表单),你基本上必须编写两次代码,一次用于 Ruby,一次用于 Javascript。

我说“基本上”是因为 Rails 插件以不同的方式为您执行 #1 和 #2。我不是 Rails 专家,即使我是这样的插件太多了,您也确实需要自己寻找以找出存在的内容以及对您的代码库有意义的内容。

希望有帮助。

* 编辑 *

我知道我刚刚说过我不会列出库,但后来我意识到如果我至少提供一些帮助您入门会更有帮助。只是不要把这些当作经典;它们目前只是一些流行的库,但它们可能适合也可能不适合您。

  1. https://github.com/codebrew/backbone-rails
  2. https://github.com/meleyal/backbone-on-rails
  3. https://github.com/aflatter/backbone-rails
  4. https://learn.thoughtbot.com/products/1-backbone-js-on-rails
  5. http://kiranb.scripts.mit.edu/backbone-slides/

最后两个实际上不是图书馆,它们是一本书/演示文稿,但我认为它们可能有用。

于 2013-01-23T20:58:00.070 回答