Я могу получить доступ к файлам shopping_list_products, загруженным в этот вызов API с консоли без ошибок.Неопределенный метод 'id' для класса, но консоль загружается отлично
Я получаю 500 на API, однако:
ActionView::Template::Error (undefined method `id' for #<Class:0x007f6cca7e1dd0>):
2015-01-26T23:51:07.608697+00:00 app[web.1]: 1: collection :@shopping_list_products
2015-01-26T23:51:07.608699+00:00 app[web.1]: 2: extends 'api/v1/shopping_list_products/_show'
index.json.rabl:
collection :@shopping_list_products
extends 'api/v1/shopping_list_products/_show'
show.json.rabl:
object :@shopping_list_product
extends 'api/v1/shopping_list_products/_show'
_show.json .rabl:
object :shopping_list_product
attribute(:id, :if => lambda { |m| m.id })
attributes :shopping_list_retailer_id, :product_id, ...
... more attributes
child :product, partial: 'api/v1/products/_show'
child :product_category, partial: 'api/v1/product_categories/_show'
node(:url) do |shopping_list_product|
api_v1_schedule_requisition_plan_shopping_list_shopping_list_retailer_shopping_list_product_path(@schedule, @shopping_list_retailer, shopping_list_product, format: :json)
end
EDIT: я удалил атрибут id, а затем перешел к следующей ошибке: «undefined method shopping_list_retailer_id для класса:». Почему это происходит?
EDIT: Обнаруженное это мой код вызывается из контроллера .. если я вернусь
@shopping_list_retailer.shopping_list_products
он прекрасно работает.
Но я вместо этого:
api :GET, '/schedule/:schedule_id/requisition_plan/shopping_list/shopping_list_retailers/:shopping_list_retailer_id/shopping_list_products', 'List all shopping list products for Shopping List for Requisition Plans for Schedule in the database'
param :query, String, desc: "Scoped_search style query string"
def index
@shopping_list_products = ShoppingListProductsIndexQuery.new(@shopping_list_retailer, params[:query]).shopping_list_products
end
class ShoppingListProductsIndexQuery
attr_reader :shopping_list_retailer, :query
def initialize(shopping_list_retailer, query)
@shopping_list_retailer = shopping_list_retailer
@query = query
end
def shopping_list_products
@shopping_list_retailer.shopping_list_products.ordered_by_product_category_type_and_product_category_name_and_product_name.search_for(query)
end
end
Тем не менее смущен, почему не определен метод идентификатор для класса ударил по мнению RABL.
Та же проблема, до сих пор. – quantumpotato