我有一个ProTip
使用脚手架生成器创建的模型。index
除并show
要求您成为管理员之外的所有操作。
我想允许用户提交他们自己ProTip
的,但将它们存储在队列中,直到有人有机会批准它们。
我可以想到几种方法来做到这一点:
UserSubmittedProTip
为具有与 相同字段的 a 创建一个完全不同的模型ProTip
。UserSubmittedProTipController
使用和操作创建一个新index
的。在操作中,我可以创建一个新的并将属性从它复制到它,然后再保存到数据库。我可以要求管理员执行该操作,并可以使用它来执行批准。new
create
create
ProTip
UserSubmittedProTip
index
SubmitController
仅使用new
和create
操作创建一个新的。创建一个以某种方式共享ProTip
's_form
partial 但知道要提交到哪个控制器的视图。在create
操作上,我可以在保存之前将其设置ProTip.approved
为false
。然后我必须创建一个批准机制。
第一种方法似乎最简单,因为我不知道如何实现第二种方法。这两种方法都感觉有点笨拙,我想知道这类问题的最佳实践是什么。
难道只有这两种方法可以解决这个问题吗?如果没有,什么会更聪明?否则,哪个更接近最佳实践,还是它们都明显错误?