问题标签 [virtus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 带有 Virtus 的 Rails 表单对象:has_many 关联
我很难弄清楚如何创建一个 form_object 来创建多个关联对象以has_many
与virtus gem关联。
下面是一个人为的示例,其中表单对象可能是矫枉过正的,但它确实显示了我遇到的问题:
假设有一个user_form
对象创建一个user
记录,然后是几个关联的user_email
记录。以下是模型:
我继续创建一个表单对象来表示用户表单:
人们会在UserForm
课堂上注意到我有attribute :emails, Array[EmailForm]
. 这是尝试验证和捕获将为关联user_email
记录保留的数据。这是Embedded Value
一个user_email
记录表格:
现在我将继续展示users_controller
设置 user_form 的方法。
new.html.erb
: _
和_form.html.erb
:
注意:如果有一种更简单、更传统的方式来显示user_emails
此表单对象的输入:请告诉我。我无法fields_for
上班。如上图:我不得不name
手动写出属性。
好消息是表单确实呈现:
表单的 html 对我来说看起来不错:
提交上述输入时:这是参数哈希:
params 哈希对我来说看起来不错。
在日志中,我收到两个弃用警告,这让我认为 virtus 可能已过时,因此不再是 rails 中表单对象的有效解决方案:
弃用警告:方法 to_hash 已弃用,将在 Rails 5.1 中删除,因为
ActionController::Parameters
不再继承自 hash。使用这种已弃用的行为会暴露潜在的安全问题。如果您继续使用此方法,您可能会在您的应用程序中创建一个可被利用的安全漏洞。相反,请考虑使用以下未弃用的记录方法之一:http: //api.rubyonrails.org/v5.0.2/classes/ActionController/Parameters.html(从新的(pry):1调用)弃用警告:方法to_a 已弃用,将在 Rails 5.1 中删除,如ActionController::Parameters
不再继承自哈希。使用这种已弃用的行为会暴露潜在的安全问题。如果您继续使用此方法,您可能会在您的应用程序中创建一个可被利用的安全漏洞。相反,请考虑使用以下未弃用的记录方法之一:http ://api.rubyonrails.org/v5.0.2/classes/ActionController/Parameters.html(从新的(pry):1调用)NoMethodError:预期[ "0", "foofoo"} 允许:true>] 响应来自 /Users/neillocal/.rvm/gems/ruby-2.3.1/gems/virtus-1.0.5/lib/virtus/attribute_set.rb 的#to_hash :196:在“强制”中
然后整个事情出错,并显示以下消息:
我觉得我要么很接近并且缺少一些小东西才能让它工作,要么我意识到 virtus 已经过时并且不再可用(通过弃用警告)。
我看过的资源:
我确实试图让相同的表格工作,但使用了改革轨道 gem。我在那里也遇到了问题。这个问题张贴在这里。
提前致谢!
ruby-on-rails-5 - Rails 中 Virtus 的默认值
我正在使用带有导轨(5.0.2)的virtus(1.0.5)。我将 Virtus 用于模型,因为它具有基于正在访问的页面的验证。
我的组织模型是
使用 virtus 创建的表单如下
不幸的是,上面的代码不起作用
ruby-on-rails - 从 Virtus.model 动态扩展时使用布尔属性辅助方法
假设我有一个User
带有布尔属性的 Virtus 模型active
:
然后我可以使用一个辅助方法active?
:
但是当我尝试动态定义一个布尔属性时extend
:Virtus.model
并使用辅助方法active?
我得到了一个NoMethodError
例外。
在这种情况下是否有可能使用辅助方法?
ruby-on-rails - 动态扩展 Virtus 实例属性
假设我们有一个 Virtus 模型User
然后我们创建这个模型的一个实例并扩展 fromVirtus.model
以动态添加另一个属性:
电流输出:
但是,当我尝试通过(或)或通过获取attributes
或将对象转换为 JSON 时,我只得到后扩展属性:as_json
to_json
Hash
to_h
active
是什么导致了问题,如何在不丢失数据的情况下转换对象?
附言
我发现了一个github issue,但似乎它毕竟没有修复(那里推荐的方法也不能稳定工作)。
ruby-on-rails - 使用 rails form 对象在编辑中初始化数据
我无法使用使用 virtus gem 初始化类属性的数据。这是我的示例代码:
我的haml表格
ship_detail 字段(po_number,job_no)的数据未显示在文本字段中
ruby-on-rails - 使用干类型将逗号分隔值字符串强制转换为数组
我想强制表单输入
进入:
我将dry-types
gem 用于其他强制和约束。我需要知道:
这是否可以通过导轨或干式中的任何内置机制实现?
如果不是,我如何使用dry-types为其定义自定义强制?
ruby-on-rails - Rails 表单对象中数组属性的渲染字段
现在我很难为里面的数组属性渲染表单字段可能是表单对象。我使用 virtus gem 来设置属性。
我的代码:
这是 JournalAccountAttribute 类
问题是我不知道如何在我看来呈现这个。所以我的关系是 1 Journal has_many 个帐户。
ruby-on-rails - 自定义包装 JSON 到 Virtus 模型?
我有一个如下所示的 JSON 对象:
和如下所示的 Virtus 模型:
除了尝试映射Project.category
到json["projectCategory"]["name"]
.
所以总的来说,我正在寻找的最终 Virtus 对象应该如下所示:
现在我正在创建一个带有Project.new(JSON.parse(response))
或基本上是 json 响应哈希的模型实例。如何自定义将 Virtus 的一些属性映射到我的 json 响应?
ruby - 在 Virtus Ruby 对象中使用字符串或哈希进行初始化
我需要能够创建一个基于 Virtus 的对象,该对象接受哈希或字符串。如果它是一个哈希,那么正常行为是完美的。如果它是纯字符串,那么我需要将其转换为{'id' => "STRING"}
. 目前,我不确定如何/在哪里重写initialize
执行此功能的方法。或者也许有不同的方式。非常感谢您的专业知识。
样本数据
所以在联系人和帐户之间。我需要它们能够使用填充@id 参数的字符串进行初始化。