我有像
这样的序列化器member_roosevelt
和json产生如下
$query1 = "SELECT ACCOUNT
FROM
`members_roosevelt`";
$result_q1 = $link->query($query1) or die($link->error);
while ($obj = $result_q1->fetch_object()) {
$members[] = $obj->ACCOUNT;
}
$ids = implode(',', $members);
$sql = "UPDATE `members_roosevelt` as `memb`
JOIN `loan_roosevelt` as `loan`
ON `memb`.`ACCOUNT` = `loan`.`ACCOUNT`
SET
(`memb`.`ACCOUNT`,
`loan`.`ACCOUNT`) = CASE ACCOUNT";
foreach ($members as $id => $ordinal) {
$sql .= sprintf("WHEN %d THEN %d ", $ordinal, (3000+$id));
}
$sql .= "END WHERE memb.ACCOUNT IN ($ids)";
$link->query($sql) or die($link->error);
如何在自定义键class UserSeriazer < ActiveModel::Serializer
attributes :name, :email
end
{
name: 'james'
email: 'j@sample.com'
}
我尝试了类似属性:name,:email,key :: customer,但是没有用。提前谢谢。
答案 0 :(得分:1)
您可以尝试将根密钥添加到序列化程序文件中。在UserSerializer中,添加此
attributes :name, :email, root: 'customer'
我不确定这是怎么回事。如果这不起作用,你可以使用以下内容。
最好的方法是创建一个名为CustomerSerializer的新序列化程序。这将继承自UserSerializer。在派生的序列化程序中,您可以指定所需的属性。用户UserSerializer应修改为使用CustomerSerializer。
class CustomerSerializer < UserSerializer
attributes :name , :email
end
请评论哪些有效!