Rails根据记录中的列值将记录设置为只读

时间:2013-04-25 22:52:49

标签: ruby-on-rails

我有一个Rails应用程序,其中包含一个名为Events的表。创建事件时,名为maxsynch的字段设置为“n”。我们使用Mule将这些事件拉到另一个应用程序中。当它拉出其中一个事件时,它会将maxsynch设置为“s”。

我想知道我是否可以将maxsynch =“s”的记录设置为只读。

我在StackOverflow上找到了以下代码:

 def create_or_update
  raise ReadOnlyRecord if readonly?
  result = new_record? ? create : update
  result != false
 end

 def readonly?
  new_record? ? false : true
 end

这应该在创建后将记录设置为只读(我认为)。我想通过先试试这个来开始测试。然后更改代码以定义只读? as maxsynch =“s”。

当我将该代码放入我的事件控制器并尝试更新事件时,我收到以下错误:

uninitialized constant Event::ReadOnlyRecord

从代码行:

     raise ReadOnlyRecord if readonly?

1 个答案:

答案 0 :(得分:0)

如果要引发特定类型的异常,则应创建相应的异常/错误类:

class ReadOnlyRecord < Exception

end

检查http://ruby-doc.org/core-1.9.3/Exception.html