我正在尝试在我的Ruby 2.1.1 / Rails4.1.0应用程序上为Rabl json模板启用缓存。它是
在我的config / development.rb
中config.action_controller.perform_caching = true
在我的app / controllers / phones_controllers.rb
中def show
@phone = Phone.find(params[:id])
respond_to do |format|
format.html # show.html.erb
# format.json { render json: @phone }
format.json
end
end
最后,app / views / phones / show.json.rabl
object @phone
cache @phone
attributes :area, :number, :country, :id, :created_at, :updated_at, :phoneable_id, :phoneable_type
我得到的错误是
Rendered phones/show.json.rabl (2.6ms)
Completed 500 Internal Server Error in 18ms
ArgumentError - wrong number of arguments (4 for 1):
rabl (0.9.3) lib/rabl/digestor.rb:8:in `digest'
rabl (0.9.3) lib/rabl/engine.rb:294:in `cache_key_with_digest'
rabl (0.9.3) lib/rabl/engine.rb:279:in `cache_results'
rabl (0.9.3) lib/rabl/engine.rb:39:in `render'
app/views/phones/show.json.rabl:2:in `_app_views_phones_show_json_rabl__914081420294741706_70254824188740'
我花了一天时间寻找有关使用Rabl进行缓存的更多信息,但结果很少,有人能指出我在哪里看到或有过这方面经验的正确方向吗?
谢谢!
答案 0 :(得分:1)
看来此错误是Rails 4.1.0中缓存摘要处理更改的结果。 RABL已更新以修复此问题(https://github.com/nesquena/rabl/pull/540),但此修复程序目前仅作为预发布版提供:
gem install rabl --pre