带有rails的ember向错误的控制器动作发送请求

时间:2014-05-24 22:06:22

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

我的rails应用程序中的模型名为Request。现在我已将Ember集成到我的应用程序中的特定路径中,而不是整个应用程序,不确定这是否是相关信息,但无论如何都是为了以防万一。这是我的余烬路线:

VsRorDev.RequestsRoute = Ember.Route.extend(model: ->
  @get("store").findAll "request"
)

这是模板文件(requests.hbs)

<h4>This is the index page of reqs</h4>
{{#each  model}}

<h4> {{id}} </h4>

{{/each}}

这是余烬模型文件

VsRorDev.Request = DS.Model.extend
    id: DS.attr('integer')
    service_id: DS.attr('integer')
    due_on: DS.attr('string')
    vendor_service_id: DS.attr('integer') 

这是Admin :: EmberRequestsController

中的rails控制器操作
def index
    Rails.logger.info "********** INSIDE INDEX OF REQUEST*************"
    # @requests = determine_what_to_do
    @requests = Request.all
    render json: @requests
end

这是序列化程序

class RequestSerializer < ActiveModel::Serializer
    attributes :id, :service_id, :due_on, :vendor_service_id, :workflow_step,:user_id,:created_at,:updated_at,:query,:admin_filter_payment_status_id,:admin_filter_status_id, :admin_filter_source_id, :admin_filter_priority_id,:admin_filter_due_by_id, :admin_filter_type_id, :admin_filter_lead_id, :admin_filter_payment_mode_id, :admin_filter_widget_id, :admin_filter_reminder_id, :agent_id, :deleted_at,:spam
end

ember的请求将转到localhost:3000/requests,而我希望它转到localhost:3000/admin/ember_requests。我该怎么做?

1 个答案:

答案 0 :(得分:1)

RAILS PART

可以使用适当的命名空间来更改Rails控制器,例如admin/ember。所以,你可以让你的Rails控制器像这样Admin::Ember::RequestsController

Ember Part

全局命名空间

您可以像这样配置应用程序适配器(如果您使用store.js gem,则在ember-rails中)

App.ApplicationAdapter = DS.ActiveModelAdapter.extend({ namespace: 'admin/ember' }); 现在,来自您的ember模型的所有请求都将向您发送网址/admin/ember/requests/admin/ember/posts

特定型号

如果您只想要对特定命名空间发出一个模型的请求,您可以像这样配置

App.RequestAdapter = DS.ActiveModelAdapter.extend({ namespace: 'admin/ember' });

请参阅此customizing adapters part in emberjs guides