(GoRails) Form对象设计风格: 用自建的Model来对参数进行操作。

视频:https://gorails.com/episodes/form-objects-design-pattern?autoplay=1

git代码 :https://github.com/gorails-screencasts/gorails-episode-179/blob/master/app/models/contact_form.rb


 

生成自定义的和复杂的表格的一种设计风格:

特色:更好的组织了复杂表格。

 

自定义一个model:

自定义的model的生成的对象,就是form对象。它的属性(attr_accessor :xxx)来存取form提交的参数,  并可以对属性进行存在性验证等操作。

 

自定义的controller连接model,和view。

 

routes 是 resource :contact

Model:  

包含ActiveModel::Model方法后,新建对象可以接受hash格式的参数。因此可以传表格参数。

Controller

  • 使用ConactForm.new来接收传入的参数(适合复杂的form)
  • 另一种方法,把参数的验证直接写在create方法内(适合简单的form)

View

@contact_form用于生成对应的参数params:{ name: value, ...}和 url:contact_path指向create(),

 d

 

posted @ 2018-09-02 21:00  Mr-chen  阅读(228)  评论(0编辑  收藏  举报