ruby on rails

ruby on rails

在Rails當中存取Google AdWords API

目標 利用Google AdWords API讀取AdWords帳戶內的廣告活動成效資料。 1. 選定一個帳號 選定一個你要存取Google AdWords API的帳號,由於申請API需要人工審核,因此需要使用這個帳號提出申請,以下皆稱此帳號為「選定的帳號」。 2. 註冊Google Cloud憑證 英文流程在Github上有記錄 簡單來說: 1. 在Developer Console當中建立一個新的專案 2. 在「憑證」項目底下建立一個用戶端ID 3. 選擇「已安裝的應用程式」,並選擇「其他」 最後會取得畫面上出現的「用戶端ID」和「用戶端密碼」,記好,晚點會用。 3. 註冊AdWords使用者權杖 1. 進入AdWords 2. 點擊右上角的齒輪,選擇「帳戶設定」 3. 如果你的權限可以管理此帳戶的所有廣告,左邊bar會出現一個「AdWords API中心」選項,

ruby on rails

form_tag 是啥?跟 form_for 有什麼不一樣?

一般在Rails的app當中,常會看到form_tag的用法,基本上就是為了傳送http的POST request使用,就像我們在瀏覽器中直接輸入網址就可以發出GET request一樣。 form_tag 基本上,一個form_tag會長這樣: <%= form_tag sessions_path do %> <% end %> 這樣基本的code就會產生: <form action="/sessions" method="post"> </form> 簡單來說,我們就是在這樣的表格中送出需要的變數。例如一個登入表格: <%= form_tag sessions_path do %> Name: <%= text_

rspec

影片教學課程 RSpec-Rails (基礎篇) 上架

RSpec課程來囉!從5/10開始錄製,到6/4終於完整上架、發佈,算是我第一個比較完整的Ruby相關課程。希望大家多多支持喔! 課程簡介 RSpec是一套Ruby語言底下的自動化測試框架,主要用於測試程式執行是否符合我們想要的結果,可在實際手動執行之前先讓程式自動進行測試,節省開發和維護的時間。 由於RSpec強調其寫法非常口語化,有別於一般的測試語法,又稱BDD(Behaviour driven development)開發框架,意思是開發者可以將RSpec視為一種規格撰寫的說明書。在實際開發之前先將規格寫好,像是說明書一樣,接著再照這份「說明書」進行開發。這也是為何RSpec要將自己的每一個測試單元都稱為「specification」,字面上就是「規格」的意思。 RSpec算是Ruby語言當中非常受歡迎的測試框架,與另一套Cucumber同樣都強調其語言表現方式非常自然。假如想要了解RSpec到底如何能夠幫助開發者,一起來看看教學影片吧! 教學內容 本系列教學會說明: 1. 在Rails當中要如何使用RSpec撰寫測試 2. 使用RSpec測試scaf

rspec

RSpec-Rails (基礎篇)(7): 撰寫整合測試

RSpec-Rails教學(基礎篇)全部內容 單元測試(Unit test)和整合測試(Integration test)的差異。 1. 單元測試針對程式的各個最小單位進行測試,在Rails當中通常測試的最小單位是method,要確保每一個method的內容都可以順利進行。尤其抓錯字在unit test中非常重要!可以省下非常多時間!(本人親身經歷) 2. 整合測試主要是看大方向,通常直接從網址進行GET或帶入變數,確保回傳的結果是正確無誤的。 3. 兩種測試一樣重要,如果只有單元測試,我們很容易忽略掉每個class之間互動可能發生的問題。 4. 如果只有整合測試,那發生錯誤的時候會很難抓問題出在哪,難度就跟我們直接下去開瀏覽器測試一樣,實用性較低。 spec/requests/posts_spec.rb require "rails_helper" RSpec.describe "posts", :type => :request do

ruby on rails

Rails 用巢狀include和查表方式來避免 n+1 query

先前在用includes和joins避免N+1 query當中有提到,資料庫一直是Rails效能一大殺手,除了瀏覽器下載很肥的檔案會造成效能低落以外,第二個會讓網頁很慢的原因就是資料庫讀取太頻繁(當然如果被牆了那可能又是另一個原因...) 以下介紹兩種稍微複雜一點的情況,使用不同的方法來避免 n + 1 query。 巢狀 include (nested include) 如果我們遇到非常複雜的table結構,關連得非常遙遠,例如: class Post < ActiveRecord::Base has_many :comments belongs_to :user end class Comment < ActiveRecord::Base has_many :replies belongs_to :user end class Reply < ActiveRecord::Base belongs_to

From Hexo to Rails

先前在Why Hexo?這篇文章中有提到,因為先前各種部落格平台和framework的缺點,所以改換使用Hexo這個Blog framework,優點在前面的文章中已經提及,但用了半年之後,遇到一兩個問題... 1. 網址改變 首先是每次產生網站時,Hexo的規則會有所修改,一般來說如果我的文章檔名是: 20140101-hello-world.markdown 那Hexo就會把這篇文章的網址變成是: https://motion-express.com/20140101-hello-world 會將檔案名稱完整的放到網址列上,但不知在哪個版本之中,Hexo把網址改成: https://motion-express.com/hello-world 這樣的改變重點在於SEO的效果整個蒸發掉了,而且愚笨的我是在已經網址改變不知道幾個禮拜之後才發現這件事情,一開始想說摸摸鼻子算了,結果過了不久,居然Hexo又把它改回來!代表這一切又是白做工,Google和Yahoo應該早就討厭我了吧! 2. 認真經營影音內容 除此之外,從兩三年前開始我就想認真經營影音內容,但一