簡體   English   中英

在 rails 中的 fast_jsonapi 中將 current_user 和鏈接一起傳遞

[英]Pass current_user and links together in fast_jsonapi, in rails

Rails 版本:6.0.0 Ruby 版本:2.6.3

控制器

render json: AreaSerializer.new(
      Area.all, paginate(pagy), params: { current_user: current_user }
    ), status: ok

序列化器

attributes :nodes do |area, params|
...
end

錯誤:

ArgumentError (wrong number of arguments (given 3, expected 1..2)):

我嘗試了另一種方法,它起作用了,

在控制器中

areas = Area.all

options = { 
            links: paginate(pagy), 
            params: { current_user: @current_user } 
          }

render json: AreaSerializer.new(areas, options),
       status: ok

在序列化器中

attributes :nodes do |area, params|
  area.users.where.not(id: params[:current_user].id)
end

而鏈接鍵是在 Serializer 中自動呈現。


前端收到的示例輸出:

{
  data: [
    {},
    {} // areas hash
  ],
  links: {
    first: "",
    last: "",
  }
}

使用這樣的東西:

render json: AreaSerializer.new(
               Area.all, 
               { params: { paginate: paginate(pagy), current_user: @current_user } }
    ), status: ok

序列化器

attributes :nodes do |area, params|
  ...
  params[:current_user]
  params[:paginate]
  ...
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM