骨干与Rails

时间:2013-01-23 12:23:56

标签: ruby-on-rails ruby-on-rails-3 backbone.js backbone-views

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

我是Rails和Backbone的新手。

请告诉我如何继续这样做。

1 个答案:

答案 0 :(得分: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/
  6. 最后两个实际上不是图书馆,它们是书籍/演示文稿,但我认为它们可能有用。