我想在我的文章框架中实现预览功能。我只需要允许用户在新视图(/posts/new)中输入信息,然后用预览按钮替换提交按钮。
一旦点击了预览按钮,用户将被路由到预览页面(可能是/posts/new/preview)。如果用户想要更改,则会点击“返回”,如果他们对帖子感到满意,则可以提交帖子。
我找到了这篇文章(http://eyedeal.team88.org/node/105),但它似乎过时了。有什么好的方法来实现这个吗?
非常感谢, 托尼
我想在我的文章框架中实现预览功能。我只需要允许用户在新视图(/posts/new)中输入信息,然后用预览按钮替换提交按钮。
一旦点击了预览按钮,用户将被路由到预览页面(可能是/posts/new/preview)。如果用户想要更改,则会点击“返回”,如果他们对帖子感到满意,则可以提交帖子。
我找到了这篇文章(http://eyedeal.team88.org/node/105),但它似乎过时了。有什么好的方法来实现这个吗?
非常感谢, 托尼
你发的链接是一种方法,但我更喜欢保存对象并设置一个布尔标志,比如说公共为false(在迁移中定义:default => false)。 然后你所做的基本上就是创建帖子并重定向到show操作,在那里你有 编辑按钮(渲染编辑操作), 发布按钮(自定义操作将公共标志设置为true) 和取消按钮(实际上删除帖子) 以及可能的稍后继续按钮,它保留帖子并重定向到任何其他页面,这样用户可以随时回来完成编辑。
当你需要显示所有帖子时,定义一个命名范围:visible,条件为['posts.public = ?', true],并在索引和类似操作中调用Post.visible而不是Post.all。你也可以定义一个默认范围,其中条件为['posts.public = ?', false],但请记住,如果你想找到不可见的帖子,你将不得不使用#without_scope。
这种方式比你链接中的方式更好,因为用户总是可以随时回来完成编辑并发布。但是你将在数据库中存储更多的对象,并且必须处理不可见的帖子(默认情况下不显示它们等等)。