我有一个使用脚手架生成器创建的ProTip
模型。除index
和show
之外的所有操作都要求您成为管理员。如何从两个不同的控制器创建模型
我想允许用户提交自己的ProTip
s,但将其存储在队列中,直到有人有机会批准它们。
我能想到的几种方法可以做到这一点:
创建具有相同的字段
ProTip
一个UserSubmittedProTip
一个完全不同的模式。使用index
,new
和create
动作创建一个新的UserSubmittedProTipController
。在create
操作中,我可以创建一个新的ProTip
,并在保存到数据库之前将UserSubmittedProTip
中的属性复制到它。我可以要求管理员执行index
操作,并可以使用它来执行审批。创建一个新的
SubmitController
只有new
和create
的操作。创建一个视图,该视图共享部分ProTip
的_form
,但知道要提交哪个控制器。在create
操作中,我可以在保存之前将ProTip.approved
设置为false
。那么我将不得不建立一个审批机制。
第一种方法似乎是最简单的,因为我不知道如何实现第二种方法。两种方法都觉得有点笨拙,我想知道这种问题的最佳做法是什么。
这是解决这个问题的唯一方法吗? 如果没有,更聪明的是什么?否则,这更接近最佳实践,还是他们明显错误?
完美。感谢您的详细回复。有时候,我需要退后一步,意识到有一种更简单的方法,因为通常情况下是这样。 –