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

匿名 · 2012年07月06日 · 最后由 jjym 回复于 2012年07月07日 · 2808 次阅读

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

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

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

匿名 #2 2012年07月06日

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

#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
匿名 #4 2012年07月06日

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

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

匿名 #6 2012年07月06日

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

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

看看 model 的 validates,其中有 confirmation.

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

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