kle*_*lew 0 forms validation ruby-on-rails readonly
我有这样的模特:
class Person
has_many :phones
...
end
class Phone
belongs_to :person
end
Run Code Online (Sandbox Code Playgroud)
当某些条件得到满足时,我想禁止更换与人相关的手机.禁止字段设置为disabledhtml格式.当我添加自定义验证来检查它时,即使手机没有更改,也会导致保存错误.我认为这是因为传递了带属性的哈希
@person.update_attributes(params[:person])
Run Code Online (Sandbox Code Playgroud)
并且有一些带有电话号码的数据(因为表格包含电话字段).如何仅更新已更改的属性?或者如何创建在字段未更改时忽略保存的验证?或者也许我做错了什么?
你也许可以使用
changed # => []
changed? # => true|false
changes # => {}
Run Code Online (Sandbox Code Playgroud)
提供的方法.
该changed方法将返回一组已更改的属性,您可以对其进行include?(...)反对以构建您要查找的功能.
也许是这样的
validate :check_for_changes
def check_for_changes
errors.add_to_base("Field is not changed") unless changed.include?("field")
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |