新手问题 不属于 Model 中的字段一般怎么处理?

Guest · 发布于 2012年07月06日 · 最后由 jjym 回复于 2012年07月07日 · 1739 次阅读
2771

例如一般密码会输入2次,实际在 Model 中应该只有一个字段,那么这个重复输入的密码在表单和在action是怎么处理的呢?

共收到 9 条回复
F46600

像你说的这种情况,看这里文档

其它的情况,你可以在model中定义新的属性。

2771

#1楼 @qichunren 你给的文档好像说的也是定义在model中的,如果不定义在model中要怎么做呢?

558

#2楼 @mappings 后端验证属于具体业务逻辑,要放到model中,与view和controller无关。

密码验证一楼正解,对于 model中定义新的属性一般的可以用attr_accessor

稍微复杂点的添加method.

class User < ActiveRecord::Base
  def full_name
    [first_name, last_name].join(' ')
  end

  def full_name=(name)
    split = name.split(' ', 2)
    self.first_name = split.first
    self.last_name = split.last
  end
end
2771

#3楼 @camel 你这个也是在model中,如果不在model中怎么做呢。 好多临时字段与model无关,放在model中也不太合适吧。

558

#4楼 @mappings 我感觉,如果不放到model中就违背了rails的设计哲学了。 Skinny Controller, Fat Model

2771

#5楼 @camel 看来搞在model里面是主流方式了,非常感谢!

60

第二个貌似仅用来确认密码输入是否正确,难道这个也需存起来?

22

看看model的validates,其中有confirmation.

2622

8L正解 LZ可以看看这个 http://guides.rubyonrails.org/active_record_validations_callbacks.html 好像是验证一个不存在的字段就作为一个虚拟字段 如果你validates :password_confirmation,presence: true 那么不通过验证会有error。但是数据库中无此字段,所以即使通过验证这个字段也不会保存。这个字段仅在内存中存在

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册