Ruby on rails 在jsonapi资源中创建单一资源
使用jsonapi resources gem(和Rails 4),我试图创建一个单一(或单例)资源(不在url上为标准的显示、更新和删除请求提供id),在我的例子中是针对当前(登录)用户的配置文件,因此我可以执行“GET/profiles”而不是“GET/profiles/:id” 我已将单一路由添加到config/routes.rb文件中: jsonapi_资源:配置文件 根据文件 那么如何修改资源(ProfileResource)以将id映射到当前用户(通过上下文)Ruby on rails 在jsonapi资源中创建单一资源,ruby-on-rails,singleton,jsonapi-resources,Ruby On Rails,Singleton,Jsonapi Resources,使用jsonapi resources gem(和Rails 4),我试图创建一个单一(或单例)资源(不在url上为标准的显示、更新和删除请求提供id),在我的例子中是针对当前(登录)用户的配置文件,因此我可以执行“GET/profiles”而不是“GET/profiles/:id” 我已将单一路由添加到config/routes.rb文件中: jsonapi_资源:配置文件 根据文件 那么如何修改资源(ProfileResource)以将id映射到当前用户(通过上下文) 现有的演示应用程序没有
现有的演示应用程序没有演示如何使用单一资源,而且似乎也没有任何文档(明确)说明这一点 在您的配置文件资源中,您可以重写self.find_by_key方法,如果键是“me”,则通过存储在上下文中的用户进行实例化。 对于当前用户,您可以点击
/profiles/me
def self.find_by_key(key, options = {})
new(options[:context][:current_user], options[:context]) if key == 'me'
end
真管用!(厚度)
对我来说,关键是
config/routes.rb
jsonapi_resource :profile
在app/resources/profile_resource.rb中
def self.find_by_key(key, options = {})
model = options[:context][:current_user]
fail JSONAPI::Exceptions::RecordNotFound.new(key) if model.nil?
new(model, options[:context])
end
然后点击(获取、放置、发布、删除)“/profile”就可以了