Repository navigation
Step.04 models
Shih_Kuan edited this page Nov 25, 2017
·
1 revision
fix app/models/manager.rb
from
class Manager < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable #, :registerable, #由於管理員不允許被註冊,所以把這段砍掉
# :recoverable, :rememberable, :trackable, :validatable
endto
class Manager < ActiveRecord::Base
devise :database_authenticatable
end#### User model
fix app/models/user.rb
from
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
# :recoverable, :rememberable, :trackable, :validatable
endto
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable
end#### Item model
如果要用下指令快速建model,model name後面一定要有欄位名字與型態,例如
rails g model Item name:string
如果只打rails g model Item就會噴掉
在此我們不用以往下指令快速建model的方式,使用JC的手刻寫法
我們一樣去paperclip github,看到Models那邊,於是我們給item.rb加上
add app/models/item.rb
class Item < ActiveRecord::Base
has_attached_file :cover,
styles: {
original: "1024x1024>",
medium: "300x300>",
thumb: "100x100>"
}, #style很重要,取決於你要幾張圖片
default_url: "/images/:style/missing.png"
validates_attachment_content_type :cover, content_type: /\Aimage\/.*\z/
endstyle很重要,取決於你要幾張圖片,RailFun的這篇文章就是在講這個
由於JC忘了在Item加一個分類`cate`所以再寫一個新的migration ``` rails g migration add_item_cate ```
add to db/migrate/XXXXXX_add_item_cate.rb
add_column :items, :cate_id, :integer, :null => false然後rake db:migrate
接著我們回到`item.rb`,加上 ```rb class Item < ActiveRecord::Base belongs_to :cate
has_attached_file :cover, ... ... end
<br>
#### Cate model
create `app/models/cate.rb`
```rb
class Cate < ActiveRecord::Base
has_many :items
end
#### Order model
create app/models/order.rb
class Order < ActiveRecord::Base
has_many :order_items
end#### OrderItem model
create app/models/order_item.rb
class OrderItem < ActiveRecord::Base
belongs_to :item
belongs_to :user
belongs_to :order
end#### 進入console測試剛剛建好的model
rails c
:001 > Order.count
:002 > Order
:003 > Item
:004 > OrderItem
:005 > User
:006 > Manager
:007 > exit
一開始要先count,再下Model Name,這樣就能知道這個table是否存在