我的用例非常简单,我有一个邀请系统,允许用户被邀请和注册。这是使用EmberJS,Ember-Data和Ruby on Rails堆栈。
MyEmberApp.InviteRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('user', { invitation_token: params.token }).then(function(array) {
return array.get('firstObject');
});
},
setupController: function(controller, user) {
controller.set('model', user);
}
});
对象加载很好并且非常完美。
但是,这是我的Rails控制器的样子:
class Api::V1::UsersController < ApplicationController
before_action :system_admin, only: [:index, :create]
def index
if params[:invitation_token]
load_invited_user
render json: @user
else
load_users
render json: @users
end
end
end
我希望未经身份验证的用户能够接受邀请,上面的ember路由将使用此控制器加载用户。代码仅在用户登录且system_admin
before_action正常运行时才有效。
你看到我的问题了?
如何将ember路由的URL自定义为单独的操作,以便我可以明确地将其设置为允许匿名用户?