问题标签 [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.
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 ) "
但是当我删除我的合同时,它可以工作。当我删除合同时,有时似乎无法找到我的操作。
我的操作如下所示:
我的合同:
我的控制器:
我的宝石文件:
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
键名。但是阅读文档,这些参数名称被接受。
我做错了什么?
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
操作中显示整个预填充的嵌套列表?
ruby-on-rails - Rails 使用改革轨道形成对象,集合不起作用或验证
我正在使用reform-rails gem为了在我的rails 项目中使用表单对象。
我意识到表单对象对于我在下面使用的示例代码来说可能是多余的,但它是出于演示目的。
在我创建的表单user
中,与该用户记录相关联的是两个user_emails
。
请注意,我没有accepts_nested_attributes_for :user_emails
在User
模型中使用。在我看来,表单对象的主要观点之一是它可以帮助您摆脱使用accepts_nested_attributes_for
,所以这就是为什么我试图在没有它的情况下这样做。我从这个关于重构胖模型的视频中得到了这个想法。我有指向表单对象视频部分的链接,他表达了他多么不喜欢accepts_nested_attributes_for
。
然后我继续创建我的user_form
:
因此,该user_form
对象包装了一条user
记录,然后包装了几条与user_email
该记录关联的user
记录。此表单包装的记录和记录上有表单级验证:user
user_email
user#name
必须有一个值- 每个都
user_email#email_text
必须有一个值
如果表单是有效的:那么它应该创建一个user
记录,然后创建几个关联的user_email
记录。如果表单无效:那么它应该重新呈现带有错误消息的表单。
我将展示到目前为止我在控制器中拥有的东西。为简洁起见:只显示new
动作和create
动作:
最后:表格本身:
作为测试:这是带有输入值的表格:
现在我继续提交。应该发生的是应该存在验证错误,因为必须存在第二封电子邮件的值。但是,在这里提交时是日志:
所以我的表单对象存在一些问题。
我怎样才能让这个表单对象工作?是否可以在不使用的情况下使用reform_rails
并让这个表单对象工作?最终:我只想让表单对象工作。accepts_nested_attributes
除了reform-rails 文档之外,我已经探索了一些资源:
我第一次尝试制作表单对象是使用virtus gem,但我似乎也无法让那个对象工作。我也为该实现发布了一个stackoverflow问题。
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:
ruby-on-rails-5 - 改革对象的未定义方法“model_name”
我不断得到:
我很确定我错过了一些东西。我已按照安装说明进行操作。可能是什么原因?
模型:
控制器:
看法:
表单对象:
ruby-on-rails - 使用改革 gem 不显示嵌套属性字段
我正在使用改革 gem 在我当前的项目中创建一个表单对象,但嵌套字段没有显示在表单中。这是我的代码:
出货型号:
出货详细型号:
改革班
控制器
模板
只有字段shipment_type
和measure
在表单上可见,po_number
而job_no
不是。我应该怎么做才能使它们可见?
ruby-on-rails - field_with_errors 未应用于改革表单对象
我正在使用改革 gem来创建一个表单对象。通常在 rails 中:当表单上的验证失败时:field_with_errors
该类包装无效字段的标签和输入。这在我的改革表单对象中没有发生。
这是表单对象的类:
这是实际的形式:
以下是提交之前表单的样子:
如果我单击Create User
按钮而不填写任何内容,则会失败,因为Name
andTitle
字段是必需的。它确实会失败,但无效的标签和字段没有被包裹,field_with_errors
因此没有使用 rails 默认样式设置field_with_errors
样式。它看起来像这样:
应用批准的答案以获得此问题的完整代码解决方案:
这是帮手:
更新!!!
事实证明,上述解决方案是不必要的。改革确实适用field_with_errors
。我的错误是我在我的 rails 项目中使用了最新的、不稳定的改革版本。
之前我指定了这个 gem 来为我的 rails 项目带来改革:
那个版本不稳定。我切换到最新的稳定版本,一切都按预期工作。无需field_with_errors
手动添加:
ruby-on-rails - 在此代码示例中,double splat (**) 参数是什么意思,为什么要使用它?
所以我已经浏览过 Traiblazer 和 Reform 文档,我经常看到这种代码
注意def populate_songs!(fragment:, **)
定义?
我很清楚**others
捕获所有其他关键字参数的双 splat 命名参数(如 )。但我从来没有见过**
一个人,没有名字。
所以我的两个问题是:
- **在上面的块中是什么意思?
- 为什么使用这种语法?