实例变量未传递到Rails中的视图

时间:2014-01-29 00:51:39

标签: ruby-on-rails ruby json rabl

编辑:解决了。溶液

包含 您的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

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您用于查找记录的ID与数据库中的ID不匹配。

检查params[:id]正在评估的内容,并确保您可以使用该值找到记录。

答案 1 :(得分:0)

找到解决方案,你需要在你的Gemfile中使用这三行:

gem 'rabl-rails'
gem 'rabl'
gem 'oj'

在此之前,我只有rabl-rails,我认为这导致了问题。