skip to main
|
skip to sidebar
memo temp
2010年11月23日 星期二
test
powered by
Splicd.com
powered by
Splicd.com
2009年1月23日 星期五
Migrations in Rails 2.1
Migrations in Rails 2.1
有跑過的migration, 會紀錄在schema_migrations 裡
強化了一些change column的功能
# in a migration file
def self.up
change_table :products do |t|
t.rename :released_on, :released_at
t.change :description, :text, :limit => nil, :null => true
t.remove :price
t.integer :stock_quantity
end
end
def self.down
change_table :products do |t|
t.rename :released_at, :released_on
t.change :description, :string, :null => false
t.decimal :price, :precision => 10, :scale => 2
t.remove :stock_quantity
end
end
Non Active Record Model
Non Active Record Model
# models/letter.rb
class Letter
attr_reader :char
def self.all
('A'..'Z').map { |c| new(c) }
end
def self.find(param)
all.detect { |l| l.to_param == param } || raise(ActiveRecord::RecordNotFound)
end
def initialize(char)
@char = char
end
def to_param
@char.downcase
end
def products
Product.find(:all, :conditions => ["name LIKE ?", @char + '%'], :order => "name")
end
end
# letters_controller.rb
def index
@letters = Letter.all
end
def show
@letter = Letter.find(params[:id])
end
<% title "Select a Letter" %>
<% for letter in @letters %>
<%= link_to letter.char, letter %>
<% end %>
<% title "Products for Letter #{@letter.char}" %>
<%= link_to "Select a Letter", letters_path %>
<%= render :partial => @letter.products %>
2009年1月22日 星期四
Going Back
# cart_items_controller.rb
def create
current_cart.cart_items.create!(params[:cart_item])
flash[:notice] = "Product added to cart"
redirect_to :back
end
# or
def create
current_cart.cart_items.create!(params[:cart_item])
flash[:notice] = "Product added to cart"
session[:last_product_page] = request.env['HTTP_REFERER'] || products_url
redirect_to current_cart_url
end
<% if session[:last_product_page] %>
<%= link_to "Continue Shopping", session[:last_product_page] %> |
<% end %>
Helpers Outside Views
Helpers outside views
# models/category.rb
def description
"This category has #{helpers.pluralize(products.count, 'product')}."
end
def helpers
ActionController::Base.helpers
end
# products_controller.rb
def create
@product = Product.new(params[:product])
if @product.save
flash[:notice] = "Successfully created #{@template.link_to('product', @product)}."
redirect_to products_url
else
render :action => 'new'
end
end
2009年1月20日 星期二
JSON
>> ActiveSupport::JSON.decode("{\"name\":\"a\",\"id\":\"1\"}")
=> {"name"=>"a", "id"=>"1"}
>> ActiveSupport::JSON.encode({"name"=>"a", "id"=>"1"})
=> "{\"name\": \"a\", \"id\": \"1\"}
這個encode, decode 是ruby 做的
還有C的json encode, decode gem 可以裝
javascript tips
<[ form name ="myform"]>.....<[/form]>
//可以直接指定 event trigger 的 function
document.myform.onsubmit = validateform
較舊的文章
首頁
訂閱:
文章 (Atom)
state chart
eb
關於我自己
Lake
檢視我的完整簡介
pie chart
網誌存檔
▼
2010
(1)
▼
11月
(1)
test
►
2009
(26)
►
1月
(26)
►
2008
(26)
►
12月
(26)