没有ActiveRecord模型的Rails控制器?

dev*_*arn 2 activerecord controller model ruby-on-rails

我正在尝试创建一个不使用ActiveRecord框架的rails web应用程序,因为我没有关系数据库后端.

到目前为止,我设法创建了一个简单的示例应用程序,可以完美地列出,显示和编辑我的记录.

但是,在创建唱片时我遇到了一些问题.

问题是如果模型类不从ActiveRecord :: Base继承,则控制器类的行为方式不同.

从控制器的角度来看,在模型继承自ActiveRecord :: Base的经典活动记录模型模式中,记录的创建似乎遵循以下顺序:

  • controller.new:创建非持久性记录,呈现输入表单
  • controller.create:用用户输入,持久存储,....设置记录.

但是,在模型不是ActiveRecord的情况下,我们得到以下序列:

  • controller.new
  • controller.update

现在当然这有点奇怪,因为我们正在跳过创建方法,所以它会导致一个nil实例错误!

我很确定这种行为是由应该在模型中实现的东西决定的,但是我无法找到什么(可能是因为我是一个绝对的初学者使用rails)

因此,如果这里的任何人都有关于我应该寻找/实施的内容的一些指示,以便解决这种情况并在两种情况下都有相同的行为,我真的很感激.

谢谢,

cly*_*yfe 7

让您的自定义模型实现MyModel#new_record?方法(实例方法),您将获得所需的行为.当new_record?返回true时,它将进入创建,当它返回false时,它将进行更新.