2012年12月12日
摘要: 限制访问权限 在上一篇中,我们在文章列表页增加了编辑和删除操作的连接,暂时还没有进行访问控制;以至于所有访问者都能看到并进行操作。 本应是管理员看到的按钮对所有人可见了。 下面为这些按钮增加权限,在连接元素外面包一个edit方法的调用,只有返回true了才可见。 <li> <p class="episodeId"><%= episode.episode_id %></p> <h3>... 阅读全文
posted @ 2012-12-12 22:45 边晓宇 阅读(961) 评论(0) 推荐(0) 编辑
  2012年12月11日
摘要: 接下来的三讲中,我来介绍一种为站点增加管理员权限的最佳实践。 最初的时候(如上图所示),页面没有进行文章管理的能力;所有操作都是在Rails Console通过命令行或更土一点直接修改数据库完成的。后来的版本里为站点增加了通过页面操作进行管理的能力,不过是开发独立的管理页面方式实现。 这种实现方式肯定是可以用的,但肯定不是最好的方案,因为这当中存在大量重复的劳动。比如说文章列表,首页中... 阅读全文
posted @ 2012-12-11 23:21 边晓宇 阅读(770) 评论(1) 推荐(0) 编辑
  2012年12月10日
摘要: 小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache。 安装apache服务器 命令是sudo apt-get install apache2 安装passenger插件 安装完毕还不能立刻用,因为想运行rails应用的话,还要为apache服务器安装插件passenger。 passenger是一个gem包,安装命令是gem install passenger... 阅读全文
posted @ 2012-12-10 21:48 边晓宇 阅读(1815) 评论(0) 推荐(0) 编辑
  2012年12月9日
摘要: 忘了mysql密码,从网上找到的解决方案记录在这里。 编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld]段下加入一行“skip-grant-tables”。 重启mysql服务 abbuggy@abbuggy-ubuntu:~$ sudo service mysql restartmysql stop/waitingmysql start/running, p... 阅读全文
posted @ 2012-12-09 19:24 边晓宇 阅读(2727) 评论(0) 推荐(1) 编辑
摘要: 下面是一个用户注册表单,可以输入名、姓和密码。 数据库中也定义了这些字段: create_table "users", :force => true do |t| t.string "first_name" t.string "last_name" t.string "password" end但是,如果我们想改变用户界面,在上面只显示全名f... 阅读全文
posted @ 2012-12-09 13:44 边晓宇 阅读(1215) 评论(0) 推荐(0) 编辑
摘要: 这次我们来讨论一下关于find方法查询条件的话题。以下是Rails Console输出的SQL查询语句。对应的动作是查找所有优先级为3的未完成任务。 >>Task.count(:all,:conditions=>["complete=? and priority=?,false,3])=>2对应的SQL查询是SELECT count(*) AS count_all FROM tasks WHER... 阅读全文
posted @ 2012-12-09 09:36 边晓宇 阅读(887) 评论(0) 推荐(0) 编辑
  2012年12月8日
摘要: 你知道吗?ActiveRecord预制了好多对模型中数据进行统计计算的方法。我们拿Task类为例。类中有一个标明任务优先级的字段priority。打开Rails Console,查看操作的回显,其中SQL语句是方法在后台执行的查询。 查询第一个任务的优先级: >> Task.first.priority=>4对应的SQL查询是SELECT * FROM "tasks" LIMIT 1;使用预置... 阅读全文
posted @ 2012-12-08 01:13 边晓宇 阅读(971) 评论(0) 推荐(0) 编辑
  2012年11月26日
摘要: 在重构实战2和重构实战1里,我们讨论了与重构、测试有关的话题。截止上一篇结束时,完成了对User类的重构,但是测试用例代码还有些乱。让我们看看如何清理一下。 require 'test_helper' class UserTest < ActiveSupport::TestCase test "full name without middle initial" do user ... 阅读全文
posted @ 2012-11-26 23:26 边晓宇 阅读(974) 评论(0) 推荐(0) 编辑
  2012年11月25日
摘要: 在上一篇《RailsCasts中文版,#10 Refactoring User Name Part 1 重构实战1》我们讨论了重构,并演示了一个通过将代码移动到模型中以达到去除冗余的重构实例。不过这段代码依然还有优化的余地。 class User < ActiveRecord::Base def full_name name = first_name + ' ' name += "... 阅读全文
posted @ 2012-11-25 21:05 边晓宇 阅读(1113) 评论(0) 推荐(1) 编辑
摘要: 从这一集开始,我们一起探讨一下关于重构的话题。重构是指在不改变软件功能的前提下对代码进行优化,以达到去除冗余代码、提高代码可读性及可维护性的的目的。 下面页面是一个用户列表,点击用户名后显示用户资料。需要注意的是,有些用户有中间名(middle name)有些则没有。 浏览器中显示的列表页及用户资料页. 先看看列表页的代码: <h1>Users</h1><ul><% for user ... 阅读全文
posted @ 2012-11-25 12:00 边晓宇 阅读(937) 评论(0) 推荐(0) 编辑