emberjs + rails,如何指定路由并向rails服务器发送请求

时间:2013-06-21 05:01:18

标签: ruby-on-rails ember.js routes

单击“检查”按钮

时如何向rails服务器发送请求

rails route

resources :sentences do
  member do
    get :check
  end
end

rails句子控制器

class SentencesController < ApplicationController

  def check
    render json: false
  end

end

emberjs route

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>

1 个答案:

答案 0 :(得分: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应用程序执行提交时,它会将更改发送到您的rails使用sentences#update/sentences/:id/update.json)的应用。