<%= text_field_tag(“item” , content = “预设值”,”name”) %>
<%= f.text_field :email, :size => 30,:value => “wanguan2000@gmail.com” %></p>
安装分页插件gem install mislav-will_paginate -s [url]http://gems.github.com[/url]
UUID.random_create.to_s随机串
rails depot建立项目
rails –database mysql depot指定数据库建立项目
然后建3个数据库
ruby script/generate scaffold product title:string description:text
image_url:string 建立整套模块,增删改显
rake db:migrate 迁移数据操作(执行数据库操作)
rake db:migrate VERSION=0 还原数据库版本为初始
ruby script/generate migration add_price_to_product price:decimal 修改数
据库增加字段
rake db:migrate 提交
models文件夹
数据验证
validates_presence_of :title 此字段不能为空
validates_numericality_of :price 必须为数字
validates_uniqueness_of :title 唯一
validates_formate_of :image_url,:width=>%r{\.(gif|jpg|png)$}
i,:message=>’must be a URL for GIF,JPG,PNG’ 指定格式
validates_length_of
还可以自定义
validate :price_must_be_at_least_a_cent
protected
def price_must_be_at_least_a_cent
errors.add(:price,’should be at least 0.01′) if price.nil?||price<0.01
end
样式表
<%= stylesheet_link_tag ‘scaffold’,’depot’%>
<%=cycle(‘list-line-odd’,’list-line-even’)%>
<%=image_tag product.image_url,:class=>’list-image’%>
<%=htruncate(product.description.gsub(/<.*?>/,”),80)%>
ruby script/generate controller store index 建立控制器
h(string) 过滤HTML代码
价格sprintf(“$%0.02f”,product.price)
number_to_currency(product.price)
<%=button_to “AddtoCart”,:action=>:add_to_cart%>增加按钮
将session放入数据库
rake db:sessions:create
rake db:migrate
config.action_controller.session_store = :active_record_store
session:session_key=> ‘_depot_session_id’
rake db:sessions:clear清除缓存
flash
redirect_to_index
render
form_remote_tag
submit_tag
stylesheet_link_tag
javascript_include_tag
respond_to
建库建model order/line_item
ruby script/generate scaffold user username:string password:string sex:string email:string address:string tel:string
ruby script/generate controller admin login logout
建文档
rake doc:app
rake stats
建立测试库
rake db:test:prepare
rake test:units
250页
<%=select :person,:gender,[[‘男’,0],[‘女’,1]], {:include_blank=>true,:selected=>0}%>
<%=select_tag :sth_id, options_for_select(@groups,selected), {:onchange=>”doSth();”}%>
def self.list_options
find(:all, :select=>”id,name”,:order=>”name”).collect{|p| [p.name,p.id]}
end
自定义时间格式
# config/initializers/time_formats.rb
Date::DATE_FORMATS[:month_and_year] = “%B %Y”
Date::DATE_FORMATS[:short_ordinal] = lambda { |date| date.strftime(“%B #{date.day.ordinalize}”) }
默认格式(:db (:short (:long
//////////////////////////////////
Ruby命令
ruby script/generate controller Say 创建控制器
ruby script/server 启动ruby web服务器
gem install rails –include-dependencies. 网络安装rails
set http_proxy=http://代理地址:端口 设置命令行代理
gem install mysql Ruby mysql 驱动安装
gem install postgres-pr Ruby postgre驱动安装
ruby -v;gem -v;rails -v 测试环境
rails demo 生成工程 默认sqlite数据库
rails -d mysql demo 使用mysql数据库
ruby script/generate scaffold product name:string description:text price:decimal
ruby script/generate controller Store index 创建一个名为Store的控制器,并含有一个index() Action方法。
ruby script/generate scaffold Comment id:integer content:text userId:integer
生成表结构,会建立13个文件
rake db:create 创建数据库
rake db:migrate 建立好页面后需要把页面中的内容迁移到数据库(建表)
数据库迁移类型
:binary、:boolean、:date、:datetime、:decimal、:float、: integer、:string、:text、:time和:timestamp
选项
:null => true或false | :limit => size | :default => value
decimal字段有:precision和:scale选项可以设置,前者用于指定存储数值的位数,后者指定小数的位数
函数
add_column :表, :字段, :选项
remove_column 移除
rename_column 改名
change_column 改变类型
raise ActiveRecord::IrreversibleMigration 阻止down()方法被调用
create_table 表名应该是复数形式
drop_table
rename_table
add_index
remove_index
Action Controller
Action View
Active Record
Action Mailer
Active Resource
Railties
Active Support
中文问题
mysql所有改为utf-8,,在my.ini里设置
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
init-connect = “SET NAMES UTF8”
[mysql]
character_set_server = utf8
character_set_system = utf8
character_set_database = utf8
character_set_client = utf8
character_set_connection = utf8
character_set_results = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
设置database.yml 连接
encoding: utf8
转向
redirect_to(:action => :index)
redirect_to(:action => “index”)