client.rbActiveRecord的 - 使用与选择
class Client < ApplicationRecord
belongs_to :address
end
address.rb
class Address < ApplicationRecord
has_one :state
has_one :country
end
从Client#show
我想返回一个包含客户信息以及其地址的JSON一起纳入。但是,我不想返回address
中的一些字段(如created_at,updated_at)。
我写了这个渲染JSON -
def show
@client = Client.select("id, address_id").first
render json: underscore_to_camel(@client.as_json(:include => :address))
end
就像我已经使用select
为Client
我怎么可以用它Address
?
编辑
如果我使用@client.as_json(include: {address: { except: [:created_at, :updated_at]}})
结果散列没有created_at
。
但是当查询运行时,它在addresses
上执行select *
。有没有办法做到这一点,以便查询本身只选择所需的列。
这是行不通的。但它仍然从数据库中提取所有列。有没有一种方法可以限制数据库查询级别的列?像'select'一样。 – mridula
@mridula来自哪个表的所有列? – Pavan
@mridula你可以在这里发布呈现的'json'吗? – Pavan