我对 Rails 很陌生,想知道最好的方法是什么:
我有一个控制器在数据库中创建记录。
如果发生特定的验证错误,我想设置一个标志,但我看不到使用我熟悉的 rails 模式完成此操作的好方法。
我要检测的模型验证是:
validates_uniqueness_of :title
我的控制器正在这样做:
fcs = Entity.create(:title => text)
当上述错误失败时,我可以使用 ActiveModel 错误集合。
我应该如何可靠地设置一个标志以编程方式指示标题已被占用?
到目前为止我考虑过
fcs.errors.messages.has_key?(:title)
但如果 title 因其他原因失败,这将返回 true。所以我需要更多类似的东西:
fcs.errors.messages[:title]==["has already been taken"]
但这将是一个令人头疼的维护问题,并且还会被不同的语言环境破坏......
那么有谁知道这应该如何使用 RoR 来完成?
感谢您的任何建议
编辑:建议标志“is_title_duplicated”的示例用法:
if(! fcs.errors.empty?)
json['success']=false
json['errors']=fcs.errors.full_messages
json['title_was_duplicate'] = is_title_duplicated
render :json => json
...