【发布时间】:2021-03-25 10:09:29
【问题描述】:
我第一次尝试使用reform-rails gem 进行改革。我正在尝试将其用作表单对象,进行一些验证,然后将其保存到数据库中。当我尝试指定验证时,即使我尝试其自己的示例之一,它也会给出错误。
宝石文件:
gem 'reform'
gem 'reform-rails'
gem 'dry-validation'
config/initializerrs/reform.rb
require 'reform/form/dry'
Reform::Form.class_eval do
feature Reform::Form::Dry
end
Rails.application.config.reform.validations = :dry
app/forms/album_form.rb:
class AlbumForm < Reform::Form
feature Reform::Form::Dry
property :name
validation do
required(:name).filled
end
property :artist do
property :name
validation do
required(:name).filled
end
end
end
命令行:
AlbumForm.new(Album.new)
Traceback (most recent call last):
3: from (irb):1:in `<main>'
2: from app/forms/album_form.rb:1:in `<main>'
1: from app/forms/album_form.rb:6:in `<class:AlbumForm>'
ArgumentError (wrong number of arguments (given 1, expected 0))
第 6 行是validation do。我错过了什么吗?
【问题讨论】:
-
语法正确吗?我认为你不需要在
validation do .. end内用params { ... }包装它。 -
@SampatBadhe 好问题.. 我以为我从文档中复制了它...但看起来不同...打算替换它并查看。
-
@SampatBadhe问题仍然存在,实际上是一个支持问题,因为我使用的是 Ruby 3。
标签: ruby-on-rails ruby-on-rails-6 trailblazer reform