编辑:解决了。溶液
包含
您的gemfile中的gem 'rabl'
和gem 'oj'
以及gem rabl-rails
由于某种原因,我的实例变量没有被传递到视图中(我正在使用Rabl)。
以下是相关代码:
articles_controller.rb
class ArticlesController < ApplicationController
respond_to :json, :xml
def index
@articles = Article.original.last(100)
end
def after
@articles = Article.where("id > #{params[:id]}")
end
def show
@article = Article.find(params[:id])
end
end
show.json.rabl
object @article
attributes :id, :headline, :source, :link
attributes :similar_articles => :similar
错误:
RuntimeError in Articles#show
Showing /Users/chintanparikh/Dropbox/Projects/Current/article_aggregator/app/views/articles/show.json.rabl where line #2 raised:
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
有什么想法吗?
答案 0 :(得分:0)
您用于查找记录的ID与数据库中的ID不匹配。
检查params[:id]
正在评估的内容,并确保您可以使用该值找到记录。
答案 1 :(得分:0)
找到解决方案,你需要在你的Gemfile中使用这三行:
gem 'rabl-rails'
gem 'rabl'
gem 'oj'
在此之前,我只有rabl-rails,我认为这导致了问题。