gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中构建 View 对象以供 JavaScript 使用

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:07 24 4
gpt4 key购买 nike

我想要实现的是使用装饰器(可能是 Draper )在将对象传递到我的 React 代码(使用 React Rails gem)之前构建一个对象。我可以轻松地装饰一个对象并在 View 中使用这些方法,但是如果我通过 React props 传递一个数组,那是不可能的:

<%= react_component('Project', { name: project.name, choices: project.options %>

我将无法访问已装饰的 project.options.total我的 JavaScript 代码中的方法。

还有其他构建这些对象的方法吗?我用的是 Active Model Serializers过去,但这不是单页应用程序,它只是 Rails View 中的 React 组件。

最佳答案

一种解决方案是创建一个方法,在将所需字段传递给 React 组件之前将其添加到 JSON 字符串。

我想我通过使用 Active Model Serializers 找到了一个更干净的解决方案.您创建一个序列化程序并在您的 Controller 方法中构建 JSON:

@project_json = ActiveModelSerializers::SerializableResource.new(@projects).as_json

作为旁注,将 current_user 添加到该序列化程序可以通过使用范围轻松完成:

ActiveModelSerializers::SerializableResource.new(@projects, scope: current_user, scope_name: :current_user).as_json

关于ruby-on-rails - 如何在 Rails 中构建 View 对象以供 JavaScript 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40462162/

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