EDIT: Решено. Решение:Переменная экземпляра не попала в поле зрения Rails
Включите gem 'rabl'
и gem 'oj'
в вашем Gemfile вместе с 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
Любые идеи?
Какова ваша версия Rails? Rails 4 использует сильные параметры, которые требуют, чтобы вы написали метод param в контроллере. –
3.2.13. Не похоже, что params - это проблема (прочитайте мой комментарий к Johns answer) – chintanparikh