Я создал маршрут участника на ресурсе под названием groups
в моем приложении Rails.404 для маршрута, который существует в соответствии с рейк-маршрутами
resources :groups do
member { post :vote }
end
Если я разгребать маршрут, это показывает, что этот маршрут существует
vote_group POST /groups/:id/vote(.:format) groups#vote
В Эмбер, я создал GroupController
App.GroupController = Ember.ObjectController.extend({
actions: {
vote: function() {
$.post("vote_group_path", {
username: this.get("username"),
id: this.get("id")
....
Однако, когда я нажимаю представить в форме, Я получаю ошибку в отсутствии маршрута
ActionController::RoutingError (No route matches [POST]"/vote_group_path"):
Мне интересно, если это потому, что я не указываю, какую группу включить в идентификатор. В шаблоне, который показывает каждую группу, я в состоянии отобразить имя и идентификатор
<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>
Я знаю, что в конечном счете понадобится идентификатор группы в действии голосов контроллера группы, но я не уверен, если отсутствие идентификатора делает маршрут, как представляется, не существует
def vote
@group = Group.find(params[:id])
...