RailsCasts中文版,#19 Where Administration Goes 为页面增加权限校验1

来源:互联网 发布:大数据开发语言 编辑:程序博客网 时间:2024/06/05 08:34


接下来的三讲中,我来介绍一种为站点增加管理员权限的最佳实践。

最初的时候(如上图所示),页面没有进行文章管理的能力;所有操作都是在Rails Console通过命令行或更土一点直接修改数据库完成的。后来的版本里为站点增加了通过页面操作进行管理的能力,不过是开发独立的管理页面方式实现。

这种实现方式肯定是可以用的,但肯定不是最好的方案,因为这当中存在大量重复的劳动。比如说文章列表,首页中已经实现过一次了,完全不必再做一份。其实可以把编辑文章的连接放置在浏览页面。(当然了,得设置为管理员权限可见)。

增加编辑文章的连接

通过修改列表页的代码,增加编辑和删除文章的链接。

[ruby] view plaincopy
  1. <li>  
  2.         <p class="episodeId"><%= episode.episode_id %></p>  
  3.         <h3><%= link_to episode.title, episode_path(episode.identifier) %></h3>  
  4.         <p class="summary"><%= episode.summary %></p>  
  5.         <p class="tagList">Tags: <% episode.tags.each do |tag| %> <%= link_to tag.title, tag_path(tag.title) %> <% end %></p>  
  6.         <p class="adminActions">  
  7.           <%= link_to "Edit", edit_episode_path(episode) %>  
  8.           <%= link_to "Destroy", episode_path(episode), :confirm => "Are you sure?":method => :delete %>  
  9.         </p>  
  10. </li>  

以上是增加了编辑和删除文章连接的列表页。

在页面最靠下的位置,增加一个新建文章的连接:

[ruby] view plaincopy
  1. <%= link_to “New”, new_episode_path %>  

这时的页面已经可以看到连接了,由于没有编写后台逻辑,点击暂时没用。没有加权限管理,所以现在是能被所有用户看到的。第一个问题不难解决,只需加上相应的逻辑代码就可以。第二个问题,下一篇中解决。


作者授权:Your welcome to post the translated text on your blog as well if the episode is free(not Pro). I just ask that you post a link back to the original episode on railscasts.com.

原文链接:http://railscasts.com/episodes/19-where-administration-goes

0 0
原创粉丝点击