首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单对象:在用户/宠物示例中使用Reform

表单对象:在用户/宠物示例中使用Reform
EN

Stack Overflow用户
提问于 2014-12-26 21:13:39
回答 1查看 1.3K关注 0票数 0

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

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

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

样本模型:

用户

代码语言:javascript
复制
# app/models/user.rb
class User < ActiveRecord::Base
  has_many :pets
end

他的宠物

代码语言:javascript
复制
# app/models/pet.rb
class Pet < ActiveRecord::Base
  belongs_to :user
end

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-31 00:33:14

代码语言:javascript
复制
class UserForm < Reform::Form
  property :email

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

然后实例化表单,如下所示。

代码语言:javascript
复制
UserForm.new(User.new)

和验证工作,反之亦然。

代码语言:javascript
复制
UserForm.new(User.new).validate(params[:user])

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27662044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档