问题标签 [reform]

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.

0 投票
1 回答
1068 浏览

ruby-on-rails - Rails Trailblazer 改革:`initialize':未初始化的常量 Uber::Options (NameError)

我试图让 Trailblazer-Rails 在我的 rails 项目中工作。

但是改革宝石似乎发生了一些奇怪的事情。

我不能用“rails s”启动rails。它以错误响应:

“/home/dragonslayer/.rvm/gems/ruby-2.3.1/gems/reform-2.2.3/lib/reform/form/populator.rb:12:in `initialize': 未初始化常量 Uber::Options (NameError ) "

但是当我删除我的合同时,它可以工作。当我删除合同时,有时似乎无法找到我的操作。

我的操作如下所示:

我的合同:

我的控制器:

我的宝石文件:

0 投票
1 回答
152 浏览

ruby-on-rails - NoMethodError (未定义的方法 'aluno' for ActionController:Parameters) - aluno_attributes

我有一堂课MatriculaForm有一些关联(belongs_to 和 has_many):

_form.html.erb

在控制器上,我做

但是initialize改革方法引发了一个错误:

NoMethodError (undefined method `aluno' for #<ActionController::Parameters:0x007fe835772a70>

我看到参数变成了aluno_attributes键名。但是阅读文档,这些参数名称被接受。

我做错了什么?

0 投票
0 回答
486 浏览

ruby-on-rails - 如何始终使用改革 gem 预先填充嵌套表单属性?

我有一个Financing模型has_many: :professional_investments

要编辑Financing,主窗体有一个用于 的嵌套窗体professional_investments

我决定暂时显示一个 8 的固定列表professional_investments,因为Cocoon宝石与 Trailblazer 的Reform.

我使用两个Reform表单对象:一个FinancingForm和一个嵌套ProfessionalInvestmentForm

在控制器中,我创建表单对象并预填充它:

它可以工作,除了空白ProfessionalInvestment也保存在集合中,就好像skip_if:参数没有效果一样。

如果我不调用@financing_form.prepopulate!update则不会按预期保存空白记录。但是,如果存在验证错误,则仅显示现有记录,而不是完整的预填充 8 项列表。

如何防止保存这些空白记录,同时仍然在update操作中显示整个预填充的嵌套列表?

0 投票
2 回答
1984 浏览

ruby-on-rails - Rails 使用改革轨道形成对象,集合不起作用或验证

我正在使用reform-rails gem为了在我的rails 项目中使用表单对象。

我意识到表单对象对于我在下面使用的示例代码来说可能是多余的,但它是出于演示目的。

在我创建的表单user中,与该用户记录相关联的是两个user_emails

请注意,我没有accepts_nested_attributes_for :user_emailsUser模型中使用。在我看来,表单对象的主要观点之一是它可以帮助您摆脱使用accepts_nested_attributes_for,所以这就是为什么我试图在没有它的情况下这样做。我从这个关于重构胖模型的视频中得到了这个想法。我有指向表单对象视频部分的链接,他表达了他多么不喜欢accepts_nested_attributes_for

然后我继续创建我的user_form

因此,该user_form对象包装了一条user记录,然后包装了几条与user_email该记录关联的user记录。此表单包装的记录和记录上有表单级验证:useruser_email

  • user#name必须有一个值
  • 每个都user_email#email_text必须有一个值

如果表单是有效的:那么它应该创建一个user记录,然后创建几个关联的user_email记录。如果表单无效:那么它应该重新呈现带有错误消息的表单。

我将展示到目前为止我在控制器中拥有的东西。为简洁起见:只显示new动作和create动作:

最后:表格本身:


作为测试:这是带有输入值的表格:

在此处输入图像描述

现在我继续提交。应该发生的是应该存在验证错误,因为必须存在第二封电子邮件的值。但是,在这里提交时是日志:

所以我的表单对象存在一些问题。

我怎样才能让这个表单对象工作?是否可以在使用的情况下使用reform_rails并让这个表单对象工作?最终:我只想让表单对象工作。accepts_nested_attributes

除了reform-rails 文档之外,我已经探索了一些资源:

我第一次尝试制作表单对象是使用virtus gem,但我似乎也无法让那个对象工作。我也为该实现发布了一个stackoverflow问题。

0 投票
1 回答
79 浏览

ruby-on-rails - Prepopulate Reform with GET vars

How can you prepopulate a Reform form object with variables from the query string?

I understand how to call prepopulate! but how do I access a variable on the URL from within the Reform contract?

For example:

0 投票
1 回答
560 浏览

ruby-on-rails-5 - 改革对象的未定义方法“model_name”

我不断得到:

我很确定我错过了一些东西。我已按照安装说明进行操作。可能是什么原因?

模型:

控制器:

看法:

表单对象:

0 投票
1 回答
433 浏览

ruby-on-rails - 未定义的方法“持续存在?” 与改革和美德模型

我目前正在开发一个 Rails 应用程序(rails v5.1.1 和 ruby​​ v2.3.4),尝试在我的一条路线( )上使用改革/bookings/new表单对象时出现错误:

我正在使用virtus 模型(在其他情况下也可以正常工作):

这是我的表单对象:

这是new我的控制器上的操作:

这是我的部分表格:

我认为使用 virtus 模型而不是活动记录应该没有问题,因为改革将自己推销为Form objects decoupled from your models. 我有什么不对吗?

0 投票
1 回答
588 浏览

ruby-on-rails - 使用改革 gem 不显示嵌套属性字段

我正在使用改革 gem 在我当前的项目中创建一个表单对象,但嵌套字段没有显示在表单中。这是我的代码:

出货型号:

出货详细型号:

改革班

控制器

模板

只有字段shipment_typemeasure在表单上可见,po_numberjob_no不是。我应该怎么做才能使它们可见?

0 投票
1 回答
384 浏览

ruby-on-rails - field_with_errors 未应用于改革表单对象

我正在使用改革 gem来创建一个表单对象。通常在 rails 中:当表单上的验证失败时:field_with_errors该类包装无效字段的标签和输入。这在我的改革表单对象中没有发生。

这是表单对象的类:

这是实际的形式:

以下是提交之前表单的样子:

先前的提交

如果我单击Create User按钮而不填写任何内容,则会失败,因为NameandTitle字段是必需的。它确实会失败,但无效的标签和字段没有被包裹,field_with_errors因此没有使用 rails 默认样式设置field_with_errors样式。它看起来像这样:

提交后


应用批准的答案以获得此问题的完整代码解决方案:

这是帮手:


更新!!!

事实证明,上述解决方案是不必要的。改革确实适用field_with_errors。我的错误是我在我的 rails 项目中使用了最新的、不稳定的改革版本。

之前我指定了这个 gem 来为我的 rails 项目带来改革:

那个版本不稳定。我切换到最新的稳定版本,一切都按预期工作。无需field_with_errors手动添加:

0 投票
1 回答
384 浏览

ruby-on-rails - 在此代码示例中,double splat (**) 参数是什么意思,为什么要使用它?

所以我已经浏览过 Traiblazer 和 Reform 文档,我经常看到这种代码

注意def populate_songs!(fragment:, **)定义?

我很清楚**others捕获所有其他关键字参数的双 splat 命名参数(如 )。但我从来没有见过**一个人,没有名字。

所以我的两个问题是:

  1. **在上面的块中是什么意思?
  2. 为什么使用这种语法?