0

单击“检查”按钮时如何向rails服务器发布请求

铁路路线

resources :sentences do
  member do
    get :check
  end
end

rails 语句控制器

class SentencesController < ApplicationController

  def check
    render json: false
  end

end

emberjs 路线

App.Router.map ->
  @resource "sentences", ->
    @resource "sentence",
      path: ":sentence_id", ->
        @route "check"

emberjs 模板

<script type="text/x-handlebars" id="sentence">

  <button {{action 'check'}} class='btn'>Check</button>

</script>
4

1 回答 1

0

我觉得你试图做的是违反惯例。

应该是这样的,假设您只是在更新模型上的“检查”变量(如果我错了,请纠正我)。

在余烬方面:

路由器:

App.Router.map(function() {
  this.resource('sentences', function() {
    this.resource('sentence', {path: ':sentence_id'});
  });
});

控制器

App.SentenceController = Ember.ObjectController.extend({
  check: function() {
    var sentence = this.get('model');
    sentence.set('check', true);
    sentence.get('store').commit();
  }
});

模板:

<script type="text/x-handlebars" id="sentence">
  <button {{action 'check' on="click"}} class='btn'>Check</button>
</script>

然后在 rails 一侧,您可以摆脱路由和控制器的检查操作,只使用默认端点(在这种情况下,当您从 ember 应用程序执行提交时,它将使用sentences#update( /sentences/:id/update.json)。

于 2013-06-21T14:10:28.953 回答