Nei*_*ton 5 ruby ruby-on-rails actionview helpers
通常,在 Rails 中使用表单助手时,每个字段都直接与相应对象上的方法相关联。
但是,我有一个表单(用户注册)需要包含不属于用户模型本身(例如,卡片详细信息)但需要出现的字段。
我如何构建表单以便我可以获得必要的字段,并根据需要验证它们(以便它适合我的所有其他验证)而不会弄脏我的用户模型?
我不确定你所说的“弄脏”你的用户模型是什么意思,但你可以使用attr_accessor 方法来做到这一点。这将允许您为可用于验证的模型创建一个属性:
class Widget < ActiveRecord::Base
attr_accessor :confirmation_email
validates_length_of :confirmation_email, :within => 1..10
end
Run Code Online (Sandbox Code Playgroud)
要仅在特定时间运行验证,您可以使用:if条件:
validates_length_of :confirmation_email, :within => 1..10, :if => Proc.new { |widget| widget.creation_step > 2 }
您还可以使用类方法,例如::if => :payment_complete。有了这些你应该能够实现你想要的功能。据我所知,没有更简洁的方法。
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |