让我简要解释一下我的意思。我正在编写一个使用 Ember 和 Rails 的应用程序。每个员工都可以给其他同事一个荣誉。他不知道还有多少人收到了。我只能知道我必须给予多少荣誉,以及我从别人那里得到多少荣誉。
但我无法真正理解如何与 Rails 通信。一张图值一千字,请看这个: kudos app http://wstaw.org/m/2013/03/25/kudos.png
当应用程序启动时,我加载指向 /users 的用户列表。当前用户位于 /currentuser。当前用户的不同之处在于它具有额外的字段,例如 kudosReceived 和 kudosLeft。
假设我想给乔加一个荣誉。我点击一个按钮,然后,什么?假设当我去 /kudos/userid rails 会发挥它的魔力。它只是给乔增加了一个荣誉。但我也想获取更新后的当前用户数据(记住,它位于 /currentuser)。
我应该寄什么?我应该先在控制器上使用 CREATE 还是 UPDATE 方法?如何获取当前用户新数据?在回调中?或者我应该将 /currentuser 与 GET 一起使用。但当?
这就是我现在所拥有的,但我完全不确定它有多正确
// application.handlebars
<h1>My Kudos</h1>
<div id="kudos-content">
<ul id="kudos-list">
{{#with controllers.current}}
<li>
<p>{{firstName}} {{lastName}}</p>
<p><img {{bindAttr src="imageUrl"}} /></p>
<p>received: {{kudosReceived}}</p>
<p>left: {{kudosLeft}}</p>
</li>
{{/with}}
{{#each user in controllers.users}}
<li>
<p>{{user.firstName}} {{user.lastName}}</p>
<img {{bindAttr src="user.imageUrl"}} />
<a href="#" {{action "addKudo" user.id target="controller.controllers.kudo"}}>(+)</a>
</li>
{{/each}}
</ul>
</div>
Sks.KudoController = Ember.ObjectController.extend({
addKudo: function(userId) {
// create a new record on a local transaction
this.transaction = this.get('store').transaction();
// don't really know what next
}
});
下一个问题是如何在 {{action}} 中使用 /kudo/userid