Ruby on Rails
天亮了_
这个作者很懒,什么都没留下…
展开
-
[Rails]加强版的.gitignore 文件
# Ignore bundler config./.bundle# Ignore the default SQLite database./db/*.sqlite3/db/*.sqlite3-journal# Ignore all logfiles and tempfiles./log/*.log/tmp# Ignore other unneeded files.datab原创 2013-09-29 18:29:41 · 1253 阅读 · 0 评论 -
Rails中的REST路由规则
HTTP 请求URL动作具名路由作用GET/usersindexusers_path显示所有用户的页面GET/users/1showuser_path(user)显示某个用户的页面GET/users/newnewnew_user_path创建(注册)新用户的页面POST/us原创 2013-09-24 10:23:21 · 1708 阅读 · 0 评论 -
【Rails】Rails程序部署到heroku上无CSS效果的解决办法
问题出在heroku上的程序没有进行预编译。首先查看设置:# config/environments/production.rb...config.assets.compile = true...看这里正确与否,然后本地运行:bundle exec rake assets:precompile然后提交并再次部署到heroku上原创 2013-10-10 16:03:15 · 1326 阅读 · 0 评论 -
【Rails学习笔记】用户关注功能(二)
这节主要解决关注功能的实现。 现在用户已经有关注的人和粉丝了,我们要更新一下用户资料页面和首页,把这些变动显示出来。首先,我们要创建一个关注和取消关注的表单,然后再创建显示被关注用户列表和粉丝列表的页面。首先我们把 following 和 folloers 动作加入 Users 控制器的路由中:SampleApp::Application.routes.draw do原创 2013-10-10 18:09:00 · 1465 阅读 · 0 评论 -
【Rails学习笔记】用户关注功能(四)
最后一节是用来实现动态列表。在上一章我们已经初步实现了动态列表,但那时候我们还没有实现用户之间的关注功能,显示的只是自己的微博,这里我们要改进一下,使其实现自己和所关注用户的微博。举个例子:id 为 1 的用户关注了 id 为 2,7,8,10 的用户后得到的动态列表feed稍作改进:class User < ActiveRecord::Base . .原创 2013-10-10 18:42:03 · 1325 阅读 · 0 评论 -
【Rails学习笔记】用户关注功能(一)
这里是整本书最难的部分,拆成三个部分。关系模型的实现:这里的难点在于如何实现用户之间相互关注的数据模型,当一个用户A关注B或者取消关注B时发生了什么? 发生的是relation的创建与销毁。因此这里的关系模型用relationship来实现,里面两项,followed_id和follower_id 分别表示被关注的ID和关注者的ID。user与relationship是一对原创 2013-10-10 17:01:33 · 1528 阅读 · 0 评论 -
【Rails学习笔记】用户关注功能(三)
这节用于实现关注功能,分两种:1.常规方式实现:app/controllers/relationships_controller.rbclass RelationshipsController < ApplicationController before_action :signed_in_user def create @user = User.fi原创 2013-10-10 18:15:41 · 1287 阅读 · 0 评论 -
【Rails】在Rails中使用Gravatar
分两个版本,一个是不设置尺寸的,另一个是可以设置大小的。不设置的如下:module ApplicationHelper def avatar_url(user) gravatar_id = Digest::MD5.hexdigest(user.email.downcase) "http://gravatar.com/avatar/#{gravatar_id}原创 2013-10-10 13:56:55 · 1098 阅读 · 0 评论 -
Rails中的MVC流程与RESTful路由的流程总结
MVC的流程参见下列图片:其处理流程如下:瀏覽器發出HTTP request請求給Rails路由(Routing)根據規則決定派往哪一個Controller的Action負責處理的Controller Action操作Model資料Model存取資料庫或資料處理Controller Action將得到的資料餵給View樣板回傳最後的HTML成品給瀏覽器原创 2013-09-26 16:59:42 · 1929 阅读 · 0 评论 -
rails的Action中传参数一个易错之处
被一段代码搞了半天,发现是有个地方多加了一个@符号!错误代码如下:def create params.permit! @post = Post.find(params[:post_id]) @comment = @post.comments.new(params[:@comment]) @comment.save redirect_to原创 2013-09-26 16:46:21 · 1794 阅读 · 0 评论 -
Rails的CRUD程序中Action的基本写法汇总
七大action,分别为index、show、edit、update、new、create、destroydef index @events = Event.allenddef new @event = Event.newenddef create @event = Event.new(params[:event]) @event.save red原创 2013-09-26 17:14:12 · 1241 阅读 · 0 评论 -
Rails实现一个blog项目01-基本功能blog和comment的实现
1.使用scaffold实现出blog,并对页面做一些美化 rails g scaffold post title:string content:text 2.使用scaffold生成comments(使用model也可以),rails g scaffold comment post_id:integer content:text3.在Post.rb和Comment.rb中加入数原创 2013-09-27 17:56:45 · 1308 阅读 · 0 评论 -
rails中post与comment嵌套后的REST路由规则
Prefix Verb URI Pattern Controller#Action post_comments GET /posts/:post_id/comments(.:format) comments#index POST /posts/:post_id原创 2013-09-26 11:46:12 · 1930 阅读 · 1 评论 -
Rails实现一个blog项目02-登录功能和session的实现
1.首先生成model userrails g model user login:string hashed_password:string salt:string去schema.rb检查无误后就近行数据的迁移这个博客暂时不开放注册,利用console增加用户 2.为user的login增加数据验证 def password @password en原创 2013-09-28 18:03:22 · 2083 阅读 · 0 评论 -
【Rails】再探RESTfull路由规则与具名路由
下午工作中用到路由嵌套,对REST的认识进一步加深。 假设有一个user模型,那么,users_path对应index的action,不需要参数,而对于user_path(),后面需要一个参数作为id,例如user_path(@user),表示@user对应的页面,具体含义与get/patch/delete有关而edit_user_path(@user)和new_user_path原创 2013-10-14 20:01:20 · 1485 阅读 · 0 评论 -
【Rails】form_for与form_tag分别用于什么情况
中午在做网站的密码修改功能时,发现form_for无法使用,因为这个表单一共三个密码框,旧密码和两次新密码,跟REST里面的edit和new完全不同,无法对应到某个model 上ruby-china搜了下,结果如下:huacnlee说:form_for 用于正常情况下快速生成 Model 的表单结构,要求参数得是 ActiveModel 的实例而 form_tag 是原创 2013-10-16 14:26:52 · 4163 阅读 · 0 评论 -
rails中ActiveModel::ForbiddenAttributesError的解决方案(新)
最近总是遇到这个问题,因为我看的资料都是Rails3.2的,但是用的开发环境是4.0的,而4.0增加了一些安全措施这类错误大多出现在new或者create两个action中def create #params.permit! @post = Post.find(params[:post_id]) @comment = @post.comme原创 2013-09-28 16:13:45 · 5780 阅读 · 1 评论 -
【Rails】Rails中HTTP的delete方法失效的解决办法
下午碰到个问题,删除资源发现居然是get请求,折磨了很久,发现是我把application.html.erb中导入js的代码删掉了,所以在head中加入就可以了,另外出现这种情况还有可能是没有在gem或者application.js中导入相应jquery文件原创 2013-11-01 18:50:18 · 1028 阅读 · 0 评论 -
【Rails学习笔记】用户微博【下】
上节初步实现了用户发微博的功能,现在增加一个动态列表 。4.动态列表这个列表显示在首页,主要是为了显示用户关注的其他用户的动态,这里暂且显示用户自己的动态。在User的Model中加入:def feed # This is preliminary. See "Following users" for the full implementation.原创 2013-10-09 16:22:47 · 1338 阅读 · 0 评论 -
【Rails学习笔记】用户微博【上】
这节主要实现用户的微博功能,用户能够发微博,能够删除自己的微博。1.微博的数据模型这部分比较简单,前面很多小练习都做过了,将User模型与之关联,形成一对多的关系即可另外要加上删除的关联功能,删除用户则用户的所有微博也全部删除。 2.显示微博这里还是用控制台去生成微博,做的工作主要是编写显示微博的页面、以及分页显示在用户资料页面show中如下:原创 2013-10-09 15:52:06 · 1462 阅读 · 0 评论 -
【Rails学习笔记】let方法
昨晚就被一个测试烦恼了好久,代码没有问题,用浏览器访问都正常,但测试代码通不过。最后发现是let方法忘了加!(叹号)因为 let 方法指定的变量是“惰性”的,只有当后续有引用时才会被创建,而我的测试代码需要变量被立刻创建,所以需要使用let!(:micropost) = ...原创 2013-10-09 10:36:39 · 1064 阅读 · 0 评论 -
[Ruby on Rails Tutorial]02-演示程序演示程序
这节和前两天做的实现一个简易的blog程序几乎一样,大致步骤如下:1.利用脚手架scaffold为User和Post建立模型,其实对于Post采用Model生成也可以 2.在Model中为Post和User生成一对多的关系3.改变路由规则,使Post包含在User里面 4.编写相应View,唯一注意的是Post传参数要把它对应的User加上。下面再次分析一下MVC的流程原创 2013-09-30 13:40:37 · 963 阅读 · 0 评论 -
[Ruby on Rails Tutorial]01-使用Heroku部署应用程序
国庆假期期间要把rails框架搞熟悉,压力巨大啊,专门写一系列文章记录一下,我个人觉得目前对我来说难度最大的是测试部分的编写,这种测试驱动开发很蛋疼。这节重点是从零开始部署rails环境,包括后面的git和heroku,因为git已经很熟悉并且也总结过了,这里主要总结下heroku前提:Heroku 使用 PostgreSQL(发音 post-gres-cue-ell,原创 2013-09-30 12:46:51 · 1777 阅读 · 0 评论 -
[Ruby on Rails Tutorial]04-Rails 背后的 Ruby
第三章先绕过去,先进行第四章,Ruby的语法。这章对于Ruby只是一个大概的说明。 Ruby 中的类可以被打开进行修改,允许像我们自己这样的普通人添加一些方法class String>> # 如果字符串和自己反转后相等则返回 true>> def palindrome?>> self == self.reverse>> end>>原创 2013-09-30 17:46:18 · 912 阅读 · 0 评论 -
[rails]Spork中出现“Could not start Spork server for RSpec”的解决方案
出现错误时,console上出现:16:59:14 - INFO - Starting Spork for RSpec, Test::UnitCouldn't find a supported test framework that begins with 'testunit'Supported test frameworks:( ) Cucumber(*) RSpecLeg原创 2013-10-03 17:20:59 · 1041 阅读 · 0 评论 -
【rails】spork测试中出现ActiveRecord::ConnectionNotEstablished的解决方案
错误提示如下:18:17:13 - INFO - Guard is now watching at '/home/guochy/sample_app'18:17:20 - INFO - Running: spec/requests/static_pages_spec.rbRunning tests with args ["--drb", "-f", "progress", "-r",原创 2013-10-03 18:36:59 · 2958 阅读 · 0 评论 -
【Rails】TDD-测试驱动开发
我们使用的主要工具是集成测试(integration test)和单元测试(unit test)集成测试在 RSpec 中叫做 request spec,它允许我们模拟用户在浏览器中和应用程序进行交互的操作。和 Capybara 提供的自然语言句法(natural-language syntax)一起使用,集成测试提供了一种强大的方法来测试应用程序的功能,而不用在浏览器中手动检查每原创 2013-10-03 18:44:07 · 1582 阅读 · 0 评论 -
【Rails】Sass::SyntaxError in StaticPages#home错误的解决方案
错误提示如下:Invalid CSS after " list-style": expected ";", was ": none;" (in /home/guochy/sample_app/app/assets/stylesheets/custom.css.scss:99)这个问题下午折磨的我不清,实际上错误就出在某个地方忘了加分号!一般在错误那行的上原创 2013-10-05 17:48:15 · 1630 阅读 · 0 评论 -
【Rails学习笔记】页面布局
在 Rails 3.0 之前(包括 3.0),静态文件分别放在如下的 public/ 目录中:public/stylesheetspublic/javascriptspublic/images这些文件夹中的文件通过请求 http://example.com/stylesheets 等地址直接发送给浏览器。(Rails 3.0 之后的版本也可以这么做。)从 Rails原创 2013-10-06 20:44:04 · 1463 阅读 · 0 评论 -
【Rails】有关TDD测试入门
rails generate rspec:install原创 2013-10-06 16:00:25 · 1390 阅读 · 0 评论 -
【Rails学习笔记】用户模型
为什么要自己开发用户验证系统基本上所有的 Web 应用程序都会需要某种登录和用户验证系统。所以 Web 框架大都有很多验证系统的实现方案,Rails 当然也不例外。用户验证及授权系统有很多,包括 Clearance、Authlogic、Devise 和 CanCan(还有一些不是专门针对 Rails 的基于 OpenID 和 OAuth 开发的系统)。所以你肯定就会问,为什么还要重复制造轮子,原创 2013-10-06 20:52:30 · 1414 阅读 · 0 评论 -
【Rails学习笔记】在控制台、服务器和迁移命令中指定其他环境的方法
这三者是不一样的,而且极其容易混淆在console中指定测试模式:rails c test在服务器启动时指定环境:$ rails server --environment production上述命令又必须需要存在相应的数据库 因此在迁移命中制定环境如下:$ bundle exec rake db:migrate RAILS_ENV=prod原创 2013-10-07 14:41:14 · 1424 阅读 · 0 评论 -
【Rails学习笔记】登录和退出功能实现
登录相对于前面几章来说是个相对复杂的流程,主要体现在必须记住用户,必须利用加密算法来保证安全性1.分析下登录流程和需要的工作:首先表单必须写好,界面部分需要处理用户为登录状态和登出状态两种情况用户登录成功时,如何让系统记住用户,如何保证安全性用户退出时,后台如何处理。另外需要设置好路由规则如何实现Session:网络中常见的 session 处理方式有好原创 2013-10-08 11:14:45 · 3808 阅读 · 0 评论 -
【Rails学习笔记】用户注册的流程
在网站布局中加入debug信息 添加 Gravatar 头像和侧边栏 然后需要我们自己去定义Gravatar方法 module UsersHelper # Returns the Gravatar (http://gravatar.com/) for the given user. def gravatar_for(use原创 2013-10-07 16:43:47 · 1629 阅读 · 0 评论 -
周鸿祎:别为蝇头小利放弃重要学习机会
日前,360 董事长周鸿祎现身华中科技大学招聘宣讲会,与学子分享创业道路,全程妙语连珠尽显“IT 行业周立波”风范。 第一份工资不是身价 “将就业选择约减成最简单的一元一次方程,一心只想未来最想干的事;创业是一种心态,打工也是一种创业;无论在哪家公司,都要主观为自己、客观为老板。”这是周鸿祎结合自身创业经历,送给大学生的三句创业箴言。 他说“有一天要创办自己的公司”是转载 2013-10-08 14:46:41 · 1438 阅读 · 1 评论 -
【Rails学习笔记】用户与微博关联得到的方法
用户和微博关联后所得方法的简介方法作用micropost.user返回该微博对应的用户对象user.microposts返回该用户的所有微博数组user.microposts.create(arg)创建一篇微博(user_id = user.id)user.microposts.create!(arg)创建原创 2013-10-08 18:10:14 · 1205 阅读 · 0 评论 -
【Rails学习笔记】更新、显示和删除用户(涉及分页)(上)
这节主要集中在users资源上,主要内容为1.用户自己可以编辑自己的信息。2.对编辑信息做权限控制,必须先登录,而且编辑的是自己的资料3.实现更友好的转向功能,例如登录论坛时回到登录前那一页,而不是论坛首页4.列出所有用户时进行分页,不使得网页过于庞大。5.设置管理员权限,并且管理员有权限删除其他用户1.用户编辑自己的信息:这个实现较简单,主要是编写用户原创 2013-10-08 17:07:16 · 1594 阅读 · 0 评论 -
【Rails学习笔记】更新、显示和删除用户(涉及分页)(下)
回顾下上节的功能改进,从用户编辑资料=》只有登录才能编辑资料=》用户只能编辑自己的资料=》用户登录后更友好的跳转功能这节主要是实现分页和删除。3.分页功能的实现:这里有一点:用户列表页面只有注册用户才能访问。我们要把 index 动作加入 signed_in_user 事前过滤器。index的视图如下:All users原创 2013-10-08 17:46:29 · 1551 阅读 · 0 评论