groups
我在 Rails 应用程序中调用的资源上创建了成员路由。
resources :groups do
member { post :vote }
end
如果我做 rake route,则表明该路由存在
vote_group POST /groups/:id/vote(.:format) groups#vote
在 Ember 中,我创建了一个 GroupController
App.GroupController = Ember.ObjectController.extend({
actions: {
vote: function() {
$.post("vote_group_path", {
username: this.get("username"),
id: this.get("id")
....
但是,当我在表单上单击提交时,我收到了 no-route match 错误
ActionController::RoutingError (No route matches [POST]"/vote_group_path"):
我想知道这是否是因为我没有通过包含 id 来指定哪个组。在显示每个组的模板中,我可以显示名称和 ID
<script type="text/x-handlebars" id="group">
{{ model.name }}
{{ model.id }}
{{ partial 'groups/form'}}
</script>
但我不确定如何将id
组作为一种隐藏元素包含在表单中(如果这甚至是使路由工作所必需的)
<script type="text/x-handlebars" id="groups/_form">
<form class="form-horizontal" {{action "vote" on="submit"}}>
<div class="controls">
{{input value=username type="text"}}
</div>
<button type="submit" class="btn">follow</button>
</form>
</script>
我知道我最终会在组控制器的投票操作中需要组 id,但我不确定缺少 id 是否使路由看起来不存在
def vote
@group = Group.find(params[:id])
...