我正在尝试创建一个不使用ActiveRecord框架的rails web应用程序,因为我没有关系数据库后端。
到目前为止,我设法创建了一个简单的示例应用程序,可以完美地列出,显示和编辑我的记录。
然而,在创建唱片时我遇到了一些问题。
问题是如果模型类不从ActiveRecord :: Base继承,则控制器类的行为方式不同。
从控制器的角度来看,在模型继承自ActiveRecord :: Base的经典活动记录模型模式中,记录的创建似乎遵循以下顺序:
然而,在模型不是ActiveRecord的情况下,我们得到以下序列:
现在当然这有点奇怪,因为我们正在跳过创建方法,因此会导致nil实例错误!
我很确定这种行为是由应该在模型中实现的东西决定的,但是我无法找到什么(可能是因为我是一个绝对的初学者用轨道)
因此,如果这里的任何人都有关于我应该寻找/实施的内容的一些指示,以便解决这种情况并在两种情况下都有相同的行为,我将非常感激。
谢谢,
答案 0 :(得分:7)
让您的自定义模型实现MyModel#new_record?
方法(实例方法),您将获得所需的行为。
当new_record?
返回true时,它将进入创建状态,当它返回false时,它将进行更新。