色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

drapper mysql

Draper是一個(gè)用來增強(qiáng)Rails應(yīng)用的庫,它使得你可以更好的組織你的視圖邏輯,同時(shí)也使得你的視圖邏輯更加可重用,更加簡潔。

預(yù)先準(zhǔn)備: 我們將演示使用Draper和active_record_query_trace gems實(shí)現(xiàn)查詢?nèi)罩居涗浐蚔iew Decorator。
gem 'draper', '~>4.0'
gem 'active_record_query_trace'

首先,讓我們來創(chuàng)建一個(gè)人的模型,之后我們將會(huì)使用Draper來添加類似性別這種邏輯。

rails g model Person first_name:string last_name:string gender:integer
rails db:migrate

之后我們來創(chuàng)建draper的decorator,名字跟person保持一致。

rails g decorator Person

現(xiàn)在打開person_decorator.rb文件,我們將添加一個(gè)方法去展示性別。首先我們來添加一個(gè)方法去展示一個(gè)完整名字,即姓和名的結(jié)合。

class PersonDecorator< Draper::Decorator
delegate_all
def full_name
"#{object.first_name} #{object.last_name}"
end
end

現(xiàn)在我們來添加一個(gè)方法去展示性別。我們?yōu)镻erson model添加了一個(gè)gender屬性(0:女,1:男)。

class PersonDecorator< Draper::Decorator
delegate_all
def full_name
"#{object.first_name} #{object.last_name}"
end
def gender
object.gender == 0 ? 'Female' : 'Male'
end
end

現(xiàn)在我們可以使用Draper來在視圖中展示人物的完整名字,以及性別。

<%= @person.decorate.full_name %>

Gender:<%= @person.decorate.gender %>

最后我們來看看如何使用active_record_query_trace記錄查詢的日志,此日志將會(huì)記錄每一條查詢,以及查詢所用時(shí)間。

Rails.application.configure do
config.active_record_query_trace.enabled = true
end

到這里,我們已經(jīng)成功的使用了Draper和active_record_query_trace gems,增強(qiáng)了Rails應(yīng)用。