ruby-on-rails - 如何向 wrap_parameters 添加额外的虚拟属性

标签 ruby-on-rails

我有一个带有一些虚拟属性的模型,它们包含在我的表单中并提交给 Controller ,但我无法将虚拟属性 (SKU) 包装在模型哈希中

 {"name"=>"Productname", "description"=>"Description", "sku"=>"ak0001", "product"=>{"name"=>"Productname", "description"=>"Description"}}

我可以使用 wrap_parameters 来覆盖它,但是我必须将所有属性(虚拟和非虚拟属性)添加到数组中,我不能将虚拟属性添加到现有的 wrap 参数中吗?
wrap_parameters Product, :include => [:sku, :name, ..etc...]

最佳答案

我遇到了完全相同的问题,我还没有找到一个很好的解决方案,但我找到了一个看起来更好的解决方案。默认情况下,rails 将尝试确定相关模型并使用该模型调用 wrap_parameters,因此在您的情况下

wrap_parameters Product

这与
wrap_parameters Product, include: Product.attribute_names

所以如果你想添加一个虚拟属性,你可以这样做
wrap_parameters Product, include: Product.attribute_names + [:sku]

关于ruby-on-rails - 如何向 wrap_parameters 添加额外的虚拟属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286962/

相关文章:

ruby-on-rails - 如何检查 Rails 的 ActiveStorage 中的附件是否是新的?

css - Rails - 当 URL 中存在参数时显示/隐藏 CSS 类

ruby-on-rails - 使用 Rails 远程设计 ajax 登录/注册 : true

javascript - 根据下拉选择动态获取值

ruby-on-rails - openshift 上的 rails 控制台

javascript - css 文件不加载 application.scss

ruby-on-rails - 我可以从安装了它的真实应用程序中运行Rails引擎规范吗?

ruby-on-rails - 如何在Rails应用程序中集成Facebook评论?

ruby-on-rails - 如何向在线用户展示

ruby-on-rails - Rails 2.3.5 连接到 SQL Server 2005