gpt4 book ai didi

ruby-on-rails - Rails NoMethodError : undefined method `includes' for #

转载 作者:行者123 更新时间:2023-12-04 00:05:56 24 4
gpt4 key购买 nike

我正在使用 active_model_serializers我的 Rails 5 应用程序中的 gem 。我在 /app/seralizers 中创建了一些序列化程序文件, user_serializer.rb , sector_serializer.rb , 和 slot_serializer.rb .

class UserSerializer < ActiveModel::Serializer
attributes :id, :first_name, :last_name, :email, :phone, :admin, :auth_token, :organization_id

has_many :sectors
has_many :slots
has_many :elements
end

class SectorSerializer < ActiveModel::Serializer
attributes :id, :user_id, :sector_number, :title

belongs_to :user
has_many :slots
has_many :elements
end

class SlotSerializer < ActiveModel::Serializer
attributes :id, :user_id, :sector_id, :sector_number, :title, :slot_number

belongs_to :user
belongs_to :sector
has_many :elements
end

在我的 Controller 代码中,我有:

class Api::V1::UsersController < API::V1::BaseController
respond_to :json

def sky
@user = User.find_by_id(params[:user_id]).includes(:sectors, :slots)

if @user
render json: @user
else
raise "Unable to get Sky"
end
end
end

我的服务器在我执行 .includes 的那一行抛出一个错误。我不知道为什么。

感谢任何帮助。谢谢!

最佳答案

改变

@user = User.find_by_id(params[:user_id]).includes(:sectors, :slots)

@user = User.includes(:sectors, :slots).find_by_id(params[:user_id])

重点是您必须在一个类(继承自 ActiveRecord::Base/ApplicationRecord)上调用 includes,而不是单个用户对象。

关于ruby-on-rails - Rails NoMethodError : undefined method `includes' for #<User:0x007f62dbbe62f8>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com