寫了幾個月的rails,終於開始把專案移植到erlyweb,這個筆記將記錄移植過程中的一些常見問題,主要是rails和erlyweb的同與不同。
1. 怎樣處理params
rails:
ruby **
p = params.fetch(:p,
"1")
s = params.fetch(:s, @@records_per_page)
p = p.to_i s = s.to_i
erlyweb:
mymodel_controller.erl:
js **
-module(mymodel_controller).
-define(records_per_page, "9").
-export([get/1]).
get(a) ->
%% a是yaws傳進來的arg, 包含了使用者請求的所有內容
p = yaws_params:getopt("p", a, "1"),
s = yaws_params:getopt("s", a, ?records_per_page),
page = list_to_integer(p), %% erlang裡string就是list
size = list_to_integer(s),
%% 查詢表mymodel的記錄
records = mymodel:find_range((page - 1) * size, size),
%% 返回plain text形式的記錄
]}.
-module(yaws_params). -export([ getopt/2, getopt/3 ]). getopt(key, arg) -> getopt(key, arg, undefined). %% ruby裡有nil, erlang裡有undefined %% usage: getopt(key, arg, default) getopt(key, arg, default) -> params = yaws_api:parse_query(arg), %% in form of [, ] etc. case lists:keysearch(key, 1, params) of false -> default; -> val = element(2, tuple), %% erlang裡element從1開始計數 if val == undefined -> default; true -> val end end.
[to be continued]
2020 Python從入門到不放棄自學筆記3
迴圈結構練習 原題為判斷乙個輸入的數值是不是質數 我把這個題目加以改造,迴圈生成所有質數 使用了 while for迴圈結構 x 2 定義初始值 prime 定義乙個空列表 while x 0 無限迴圈,此處也可以用while true y 0 定義初始可整除次數 for i in range 2 ...
2020 Python從入門到不放棄自學筆記4
今日練習 實現將乙個正整數反轉,例如 將12345變成54321 書上的標準答案 正整數的反轉 version 0.1 author 駱昊 num int input num reversed num 0while num 0 reversed num reversed num 10 num 10 ...
Rails儲存庫從SVN轉向Git
在ruby on rails 2.1版本發布的前夕,rails開發團隊也準備將 的儲存庫從subversion遷移到git之上。在ruby on rails的官方部落格裡,dhh寫到 u0026 xd n u0026 xd n 我們準備將rails開發的 儲存庫從subversion遷移到git之上...