我正在从服务获取数据,然后将数据设置为我的 bean 对象,并希望在我的视图中使用相同的数据,现在在 rails 视图中以表单显示它。现在我想使用骨干验证此表单。
我是Rails和Backbone的新手。
请给我一个关于如何进行的想法。
我想也许您对Web应用程序的工作方式感到困惑。 骨干是一个客户端框架;它使用在用户浏览器中运行的 Javascript 代码。 Rails是一个服务器端框架;它使用在您的服务器上运行的 Ruby 代码。
考虑到所有这些,根据定义,你的骨干代码和你的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 专家,即使我有太多这样的插件,你真的需要自己寻找,找出存在的东西以及什么对你的代码库有意义。
希望有帮助。
*编辑*
我知道我只是说我不会列出库,但后来我意识到如果我至少提供一些来帮助您入门会更有帮助。 只是不要把这些当作经典;它们目前只是一些流行的库,但它们可能适合也可能不适合您。
- https://github.com/codebrew/backbone-rails
- https://github.com/meleyal/backbone-on-rails
- https://github.com/aflatter/backbone-rails
- https://learn.thoughtbot.com/products/1-backbone-js-on-rails
- http://kiranb.scripts.mit.edu/backbone-slides/
最后两个实际上不是图书馆,它们是一本书/演示文稿,但我认为它们可能有用。