每天一剂Rails良药知识库 |
||
|
最近更新文章
Rails宝典之第三十九式: 自定义field_error
我们先来看action_view/helpers/active_record_helper.rb里的一段代码: module ActionView class Base @@field_error_proc = Proc.new{ |html_tag, instance| "<div class=\"fieldWithErrors\">#{html_tag ...
Rails宝典之第三十八式: 多按钮表单
看看一个多按钮的表单的例子: <!-- projects/new.rhtml --> <% if params[:preview_button] %> <div id="preview"> <h2><%= @project.name %></h2> <% textilize @project.desc ...
Rails宝典之第三十七式: simple search form
看一个简单的search表单 <!-- projects/index.rhtml --> <% form_tag projects_path, :method => 'get' do %> <p> <% text_field_tag :search, parmas[:search] %> <% submit_tag "Searc ...
Rails宝典之第三十六计: Subversion on Rails
作者教我们怎样将Rails项目导入到Subversion mkdir svn_setup cd svn_setup/ rails blab cd blab mv config/database.yml config/databse_example.yml rm -r log/* rm -r tmp/* 我们不想将log、tmp目录里的文件都提交到svn,因为这些目录里的文件不是源代码 cd ...
Rails宝典之第三十五式: 自定义REST动作
REST将我们的controller限制到7个actions(index/show/new/create/edit/update/desctroy) 这次我们就来看看怎样添加自定义的actions class TasksController < ApplicationController def idnex... def show... def new... def create... de ...
Rails宝典之第三十四式: Named Routes
这次的视频讲述的是命名路由,有点火星了: # routes.rb map.resources :projects map.task_archive 'tasks/:year/:month', :controller => 'tasks', :action => 'archive' map.home '', :controller => 'projects', :action =& ...
Rails宝典之第三十三式: make a plugin
续上式。 我们可以将Task类里的due_at_string这个虚拟属性的生成做成一个plugin: ruby script/generate plugin stringify_time 这将在vendor/plugins目录生成如下文件: vendor plugins stringify_time ---init.rb ---install.rb lib ----stringify_tim ...
Rails宝典之第三十二式: text_field time
一般编辑时间时我们使用datetime_select: <%= f.datetime_select :due_at %> 如果我们希望用text_field来编辑时间,可以这样做: <% f.text_field :due_at_string %> 修改Task类: class Task < ActiveRecord::Base def due_at_stri ...
Rails宝典之第三十一式: format time
我们经常要用到时间的格式化,我们可以使用ri来看看reference doc. ri Time.strftime 结果显示如下: ------------------------------------------------------- Time#strftime time.strftime( string ) => string -------------------------- ...
Rails宝典之第三十式: pretty title
这次来看看怎样为每个页面创建良好的title 为了让每个页面显示不同的title,我们需要在global layout -- application中留出位置: <html> <head> <title>Shoppery - <%= yield(:title) || "The Place to Buy Stuff" %>< ...
Rails宝典之第二十九式: group_by
这次来看active_support/core_ext/enumerable.rb里的group_by: # latest_transcripts.group_by(&:day).each do |day, transcripts| # p "#{day} -> #{transcripts.map(&:class) * ', '}" # end # &qu ...
Rails宝典之第二十八式: in_groups_of
这次讲的是active_support/core_ext/array/grouping.rb里的in_groups_of方法 # %w(1 2 3 4 5 6 7).in_groups_of(3) {|g| p g} # ["1", "2", "3"] # ["4", "5", "6&qu ...
Rails宝典之第二十七式: CSS(Cross Site Scripting)
这次你将看到escape用户输入的任何HTML是多么重要 假设博客上有一个comment表单,我们输入如下内容: Testing <script>alert('test')</script> 提交我们的comment,如果浏览器弹出alert框,说明该博客没有对用户输入的comment进行escape Hacker可以利用这个弱点来做CSS攻击: Got your ...
Rails宝典之第二十六式: 防止Hacker入侵
假设我们的users表如下: create_table "users", :force => true do |t| t.column "name", :string t.column "admin", :boolean, :default => false, :null => false end 看看我们都创建用户的 ...
Rails宝典之第二十五式: Sql injection
Sql injection是老问题,对如下查询: def index @tasks = Task.find(:all, :conditions => "name LIKE '%#{params[:query]}%'") end 当用户输入的query条件加上单引号时很容易通过sql injection来攻击我们的Rails程序 而我们使用如下查询方式就可以避免sql注入 ...
群组知识库热门文章
最新评论
不能适应超过三层的的override,比如我有A,B,C三个模板,B在A的基础上添加自己的东西,C在B ...
mingliangfeng 评论了 Rails宝典之第八式: layout与content_for
mingliangfeng 评论了 Rails宝典之第八式: layout与content_for
[/b][i][/i][u][/u]引用[color=red][/color][size=medium ...
linjie_830914 评论了 Rails源码研究之ActionController:二,ro ...
linjie_830914 评论了 Rails源码研究之ActionController:二,ro ...