在用 markdown 在文本框输入文字后,想点击一个按钮跳转到文章预览界面,本想使用类似 preview/:id 的路由获取文章的,不过这时还没有存入数据库,所以这种方法不可行,想问下各位有什么比较好的方法实现这个功能吗?
如果要按照 REST 的思路来设计的话,尝试把产品领域里的逻辑概念抽取出来,创建一种业务上能说得通的新资源。
比如说没写完的文章,一般都叫做草稿,那么就先建个 ActiveModel(因为还不需要存到数据库,所以不用继承 ActiveRecord)的子类,名字就叫 Draft
。
这样来说,预览这个功能就等于“创建了一篇草稿”,那么在 HTTP 接口上应该体现成 POST /drafts/
。有了这些思路,再往下自己写控制器,写模板渲染什么的,应该就不需要多说了。
参考 Rails 教程里创建 model 但未能通过验证的做法:即使还没存数据库,用户已经把 markdown 内容 POST 上来了。不要重定向,直接拿去渲染就是。
http://guides.rubyonrails.org/getting_started.html#adding-some-validation