- 浏览: 2652819 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB入门教程 -
shliujing:
楼主在不是精通java和php的前提下,请不要妄下结论。
PHP、CakePHP哪凉快哪呆着去 -
安静听歌:
希望可以一给一点点注释
MySQL存储过程之代码块、条件控制、迭代 -
qq287767957:
PHP是全宇宙最强的语言!
PHP、CakePHP哪凉快哪呆着去 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB入门教程
这次要介绍的是使用Akismet来预防垃圾comment
akismetor是作者写的一个插件:http://svn.railscasts.com/public/plugins/akismetor
使用akismetor需要如下几步
1,给comments表添加几个字段:
2,routes.rb:
3,comment.rb:
4,comments_controller.rb:
5,comments/index.rhtml:
akismetor是作者写的一个插件:http://svn.railscasts.com/public/plugins/akismetor
使用akismetor需要如下几步
1,给comments表添加几个字段:
add_column :comments, :user_ip, :string add_column :comments, :user_agent, :string add_column :comments, :referrer, :string add_column :comments, :approved, :boolean, :default => false, :nul => false Comment.update_all("approved=1")
2,routes.rb:
map.resources :comments, :collection => { :destroy_multiple => :delete }, :member => { :approve => :put, :reject => :put}
3,comment.rb:
before_create :check_for_spam def request=(request) self.user_ip = request.remote_ip self.user_agent = request.env['HTTP_USER_AGENT'] self.referrer = request.env['HTTP_REFERER'] end def check_for_spam self.approved = !Akismetor.spam?(akismet_attributes) true end def akismet_attributes { :key => 'abc123', :blog => 'http://railscasts.com', :user_ip => user_ip, :user_agent => user_agent, :comment_author => name, :comment_author_email => email, :comment_author_url => site_url, :comment_content => content } end def mark_as_spam! update_attribute(:approved, false) Akismetor.submit_spam(akismet_attributes) end def mark_as_ham! update_attribute(:approved, true) Akismetor.submit_ham(akismet_attributes) end def self.recent(limit, conditions = nil) find(:all, :limit => limit, :conditions => conditions, :order => 'created_at DESC') end
4,comments_controller.rb:
def index @approved_comments = Comment.recent(20, :approved => true) @rejected_comments = Comment.recent(100, :approved => false ) if admin? end def create @comment = Comment.new(params[:comment]) @comment.request = request if @comment.save if @comment.approved? flash[:notice] = "Thanks for the comment" else flash[:error] = "Unfortunately this comment is considered spam by Akismet. " + "It will show up once it has been approved by the administrator." end redirect_to episode_path(@comment.episode_id) else render :action => 'new' end end def destroy_multiple Comment.destroy(params[:comment_ids]) flash[:notice] = "Successfully destroyed comments." redirect_to comments_path end def approve @comment = Comment.find(parmas[:id]) @comment.mark_as_ham! redirect_to comments_path end def reject @comment = Comment.find(params[:id]) @comment.mark_as_spam! redirect_to comments_path end
5,comments/index.rhtml:
<% title "Recent Comments" %> <div class="content comments"> <%= render :partial => 'comment', :collection => @approved_comments, :spacer_template => 'divider' %> </div> <% if admin? %> <div class="content" id="rejected_comments"> <% form_tag destroy_multiple_comments_path, :method => :delete do %> <h3>Rejected Comments</h3> <table> <% for comment in @rejected_comments %> <tr> <td><%= check_box_tag "comment_ids[]", comment.id, true %></td> <td><%= link_to h(comment.name), comment.site_url %></td> <td><%= h truncate(comment.content, 30) %></td> <td><%= link_to "not spam", approve_comment_path(comment), :confirm => 'Are you sure?', :method => :put %></td> </tr> <% end %> </table> <p><%= submit_tag "Destroy Checked" %></p> <% end %> </div> <% end %>
发表评论
-
用了TextMate才知道什么叫神级Editor
2011-03-09 04:51 57864一直用Eclipse作为开发Ruby和Java项目的IDE,但 ... -
Ruby使用OAuth登录新浪微博和豆瓣
2011-01-09 12:49 4307首先需要安装oauth这个gem包 gem install ... -
使用Passenger+nginx部署Rails
2010-12-28 15:12 49211. Install Passender gem instal ... -
markItUp+rdiscount搭建Rails下可视化Markdown编辑器
2010-12-21 17:48 5375markItUp是基于jQuery的可视化编辑器,支持Html ... -
Rails3 and MongoDB Quick Guide
2010-12-10 14:13 2717Install MongoDB Download: http: ... -
基于ruby-protobuf的rpc示例
2009-08-11 11:51 41101, 安装ruby-protobuf gem instal ... -
Ruby导出xls和csv的utf-8问题的解决
2009-02-04 15:05 6746数据库数据为utf-8格式,包括中文和拉丁文等等 导出文件xl ... -
URL/HTML/JavaScript的encode/escape
2009-01-04 13:03 9235最近经常被URL、HTML、JavaScript的encode ... -
各种排序的Ruby实现
2008-11-27 14:51 3954Θ(n^2) 1, Bubble sort def bu ... -
12月5日北京RoR活动!
2008-11-26 18:38 2967又是一年过去了,Rails在国内的发展势态良好,很多使用RoR ... -
Rails程序开发的最大问题是代码规范
2008-08-28 11:56 5279使用Rails开发大型复杂B2B应用一年了,这个项目目前开发人 ... -
Web开发大全:ROR版——推荐序
2008-07-09 00:39 2376来自http://www.beyondrails.com/bl ... -
深入ActionMailer,使用Sendmail发邮件
2008-07-03 11:41 3366来自: http://www.beyondrails.com/ ... -
Rails里如何结合ExceptionNotification配置gmail账户发邮件
2008-06-19 19:56 30151,安装ExceptionNotification rub ... -
使用coderay和railscasts样式进行代码高亮
2008-06-17 00:16 2359CodeRay是一个语法高亮的Ruby库,效率很不错。 Cod ... -
Capistrano试用
2008-06-16 19:05 19071,客户端机器安装Capistrano gem insta ... -
lighttpd真垃圾啊
2008-06-04 18:38 2461使用lighttpd+fcgi跑Rails程序,文件上传会si ... -
将gem变成plugin
2008-06-04 11:27 1762有什么样的需求就有什么样的对策 当vhost上的帐号没有ge ... -
在Rails里使用ReCaptcha添加验证码
2008-06-03 15:51 42121,去http://recaptcha.net/sign up ... -
Rails里给文件上传添加progress_bar
2008-05-27 17:00 2054文件上传很慢时,UI没有什么用户提示,这样让人很费解,所以我们 ...
相关推荐
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
使用Rails构建可伸缩和可维护API的最佳方法
Ruby.on.Rails.Tutorial,Learn.Web.Development.with.Rails,Third.Edition-中文版 文字版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
《Rails之道》按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基础、关联、验证和高级技巧,...
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...
NULL 博文链接:https://lzqustc.iteye.com/blog/439128
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
提供用于Rails 4.x(及更高版本)资产管道的Sprockets实现。 安装 gem 'sprockets-rails' , :require => 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets...
minitest-rails, Rails的Minitest集成 minitestRails 5的Minitest集成 安装gem install minitest-rails这将安装以下宝石:minitest配置创建一个新的Rail
初学 Ruby on Rails 必备之宝典
Bootstrap 3 和 Rails 4(样例用的是Ruby 2.1.1,Rails 4.1.4) Table of Contents Preface 1 Chapter 1: Introducing Web Application Development in Rails 7 Why Bootstrap with Rails? 8 Setting up a Todo ...
gem "mongoid_rails_migrations" 如何使用 创建迁移 $ rails generate mongoid:migration 运行迁移: $ rails db:migrate $ rails db:migrate:down VERSION= $ rails db:migrate:up VERSION= $ rails db:rollback...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
迷你轨道与Rails 6.1的Minitest集成安装gem install minitest-rails 这将安装以下gem: minitest配置创建一个新的Rails应用程序: rails new MyApp 选择一个版本如果您正在运行Rails 6.x,请在Gemfile中指定相应的6....
rails5-docker-alpine:使用Alpine Linux的Rails轻量级Docker开发环境
Component-Based Rails Applications: Large Domains Under Control (Addison-Wesley Professional Ruby Series) By 作者: Stephan Hagemann ISBN-10 书号: 0134774582 ISBN-13 书号: 9780134774589 Edition 版本: ...
Rails Admin枚举4 Rails Admin插件,用于正确查看Rails 4.1枚举 安装 gem 'rails_admin_enum4', github: 'sibext/rails_admin_enum4' bundle install 用法 通过生成器生成新模型: rails g model Sibext service:...
graphql-rails-generators 一些生成器可以轻松将Rails模型与集成。 我之所以创建它,是因为我浪费了太多的按键来手动复制模型架构以创建graphql类型。 该项目包含用于查看ActiveRecord模型架构的生成器,并为您...
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。