Step.03 註冊系統與產品圖片 - Azraeil/JCcart_Note GitHub Wiki
使用devise這個gem,devise GitHub
先在我們的專案裝好devise
rails g devise:install
接著我們需要devise的User model以及Manager model
rails g devise User
rails g devise Manager
接著去修改XXXXXXX_devise_create_users.rb,JC解釋了這些功能,然後把Recoverable、Rememberable、Trackable、Confirmable、Lockable,以及下面這行都註解掉沒使用它們
db/migrate/20160906083955_devise_create_users.rb
# add_index :users, :reset_password_token, unique: true
接著去修改XXXXXXX_devise_create_manager.rb,一樣關掉上面那些東西。
然後rake db:migrate
rails g migration init_shop
add to migrate/XXXXXX_init_shop.rb
class InitShop < ActiveRecord::Migration
def change
create_table :cates do |t|
t.string :name
t.integer :position
t.timestamps
end
create_table :items do |t|
t.integer :status, :limit => 1, :default => 0, :null => false
t.string :name
t.integer :price
t.text :descript
t.timestamps
t.timestamp :delete_at #當你刪掉一筆訂單時,你並不是真正刪掉,只是讓數字少1,他會保留你原始的資料,方便你追帳
end
create_table :orders do |t|
t.integer :user_id
t.timestamps
t.integer :status, :limit => 1, :null => false, :default => 0
t.integer :total, :default => 0, :null => false
end
create_table :order_items do |t|
t.integer :order_id, :null => false
t.integer :item_id, :null => false
t.integer :user_id, :null => false
t.integer :price, :null => false
end
add_index :order_items, [:order_id] #所有可能用到WHERE的都要加到add_index裡去
end
end然後rake db:migrate
### 產品圖片:paperclip
brew install imagemagick
裝完後可以用convert --help這指令問ImageMagick有什麼東西可以用
接著去Gemfile加入ImageMagickgem "paperclip", "~> 5.0.0",由於我們剛剛已經裝過,所以這行可省略
然後JC解釋了paperclip github,Migration 的部分
rails g migration add_item_cover
然後把XXXXXXX_add_item_cover.rb修改成paperclip github,Migration 的寫法
db/migrate/20160906094234_add_item_cover.rb
class AddItemCover < ActiveRecord::Migration
def up
add_attachment :items, :cover
end
def down
remove_attachment :items, :cover
end
end然後再一次rake db:migrate