接下来的三讲中,我来介绍一种为站点增加管理员权限的最佳实践。
最初的时候(如上图所示),页面没有进行文章管理的能力;所有操作都是在Rails Console通过命令行或更土一点直接修改数据库完成的。后来的版本里为站点增加了通过页面操作进行管理的能力,不过是开发独立的管理页面方式实现。
script/generate scaffold episode "admin/episodes"
一组单独开发用来管理文章的页面。
这种实现方式肯定是可以用的,但肯定不是最好的方案,因为这当中存在大量重复的劳动。比如说文章列表,首页中已经实现过一次了,完全不必再做一份。其实可以把编辑文章的连接放置在浏览页面。(当然了,得设置为管理员权限可见)。
增加编辑文章的连接
通过修改列表页的代码,增加编辑和删除文章的链接。
<li>
<p class="episodeId"><%= episode.episode_id %></p>
<h3><%= link_to episode.title, episode_path(episode.identifier) %></h3>
<p class="summary"><%= episode.summary %></p>
<p class="tagList">Tags: <% episode.tags.each do |tag| %> <%= link_to tag.title, tag_path(tag.title) %> <% end %></p>
<p class="adminActions">
<%= link_to "Edit", edit_episode_path(episode) %>
<%= link_to "Destroy", episode_path(episode), :confirm => "Are you sure?", :method => :delete %>
</p>
</li>
以上是增加了编辑和删除文章连接的列表页。
在页面最靠下的位置,增加一个新建文章的连接:
<%= link_to “New”, new_episode_path %>
这时的页面已经可以看到连接了,由于没有编写后台逻辑,点击暂时没用。没有加权限管理,所以现在是能被所有用户看到的。第一个问题不难解决,只需加上相应的逻辑代码就可以。第二个问题,下一篇中解决。