0

Nick Sutterer 的改革 gem看起来很棒,但由于某种原因,我无法理解如何将它应用到我的概念验证 Rails 应用程序中。我已经阅读了文档和一些博客文章,但仍然不完全理解它是如何工作的。

给定以下标准,模型、表单对象类、视图和控制器的代码会是什么样子?

  • 该应用程序具有UserPet模型
  • 注册表单接受 aUser.email和他的Pet.name
  • 没有有效的电子邮件地址,用户无法注册
  • 当用户注册时,User会创建帐户并创建pet一行并自动与用户关联

样品型号:

一个用户

# app/models/user.rb
class User < ActiveRecord::Base
  has_many :pets
end

他的宠物

# app/models/pet.rb
class Pet < ActiveRecord::Base
  belongs_to :user
end

谢谢!

4

1 回答 1

2
class UserForm < Reform::Form
  property :email

  property :pet, populate_if_empty: Pet do
    property :name
  end
end

然后按如下方式实例化表单。

UserForm.new(User.new)

验证反之亦然。

UserForm.new(User.new).validate(params[:user])

我建议你买这本书。这不是隐蔽的广告,但我基本上是在这里重复自己哈哈哈。

于 2014-12-31T00:33:14.657 回答