Сериализатор активной модели выводит одни и те же данные для действия index и show.

Когда я собираюсь индексировать действие, он выводит все данные из моей модели, как я понял, когда я собираюсь показать действие, которое должно выводить только объект, зависит от параметра id, но в моем случае он выводит те же данные, что и были в индексном действии.

Мой активный сериализатор модели:

class CategorySerializer < ApplicationSerializer
    attributes :id, :name, :alias, :parent_category_id, :position, :menu, :status
    has_many :subcategories
    has_many :products
end

Контроллер:

module API
  module Store
    class CategoriesController < ApplicationController
      def index
        @categories = Category.all
        if params[:name]
          @categories = Category.find_by(name: params[:name])
        end
        puts @categories
        render json: @categories
      end
      def show
        @category = Category.find(params[:id])
        render json: @category
      end
    end
  end
end

person p0ison    schedule 30.10.2014    source источник
comment
Когда вы отправите params[:name] или нет? Похоже, что индекс действует как шоу, если вы передаете params[:name]. Чтобы это исправить, измените find_by на where   -  person AlexQueue    schedule 31.10.2014
comment
Это абсолютно аналогичный вывод из index и show action. Даже действие index с params[:name] работает так же, как и без него.   -  person p0ison    schedule 31.10.2014
comment
Возможно, вы могли бы посмотреть здесь: stackoverflow.com/questions/12485404/   -  person schmijos    schedule 04.07.2019