1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
1. rails額外的功能該怎麼擴充?
舉例來說,我拿到電信商的簡訊API,要增加發送簡訊、接收簡訊的功能(其實也只是從網址傳傳東西,收收東西而已)。
我當然可以直接在controler中去處理,但是,理想的方式是寫成一個rails的系統物件,要用時再去跟rails拿。
所以我想知道rails擴充功能的正規方法是怎麼寫的?

2. 擴充ActiveRecord:
類似 add_timestamps那樣
j我想在欄位上加上isDelete的欄位,再進行任何SQL,包跨關聯SQL的時候,都不將isDelete為true的資料撈出來,除非有特別指定。
在刪除時,會把isDelete改為true,而不是真的刪除。
這是很常見的需求,尤其是跟錢有關的狀況,我不知道為什麼rails的刪除總是會「真的」把資料給刪了
以前,這種東西都手動硬幹,但既然都換rails了,我想要有更優雅的解決方式

3. LOG的功能:
對任何資料庫的重要操作,都要能復原,而且要記錄操作者,「而且要能顯示log在列表網頁上給使用者看」。
這對一些系統來說很重要。
例如:到底是誰(透過軟體系統)把核電廠的冷卻水給關掉的,是誰把燃料棒多抽了10公分等等。
我以前看到的做法是在操作資料庫的物件之間,多做了一個中間層,那個中間層會把修改到的資料行給copy到另外一個表去紀錄。
ActiveRecord有沒有更優雅的處理方式?

4. 報表:
要求是,給予一個預設的SQL或是設定好SQL的ActiveRecord,就要自動做到下面的東西:
顯示列表,或是經過計算統計過的表(每月財報等等)。
要可以依照顯示的欄位去做排序、勾選是否隱藏該行、改變行的顯示順序。
要可以進行單純搜尋。(在某幾個欄位中尋找文字之類的)
要能自動分頁。
例如這個 http://f23.tw/F7rV/u
以及,報表要能自動生成html、docx、excell、pdf等四種版本,寫一次就要能出現四種版本的報表。

5. 進階搜尋:
承報表
如果有需要,可以設定比較麻煩的搜尋方式,要可以指定搜尋「辦理人員=xxx」或(且)「時間介於2015/03/12~2016/04/06」或(且)「辦理機關XXX」等,針對不同欄位下去作特定的搜尋。以前這種東西要手動一個一個設定,我是覺得應該可以指定欄位,就在收尋表單中,自動生成進階設定的input出來。
https://www.google.com.tw/advanced_search?hl=zh-TW

6. js ui tool:
舉例來說,組織機關的js tool之類的,可以在不同階層下去作選擇。
或是有些限制性的列表的選單等等,通常是在「has one」或是「has many」的狀況下用的。
像是有理個資料表,分為「會議活動」跟「會議活動」兩個table,那麼,rails既然已經在ActiveRecord做了關聯了,那在生成前端的新增修改界面時,應該就要知道,她應該要出現多選選單或是單選選當讓使用者選才對。

7. 表單:
依照Model的欄位屬性,頂多附加設定,就要自動做到下面的功能:
依照欄位,自動產生表單
自動生成JS檢核 (只需要寫一次,而不是SERVER一次,前端JS又檢查一次)

8. 權限設定:
不同身分可以編輯、檢視的項目不一樣,舉例來說,系統管理者可以編輯任意使用者的isAdmin的欄位,使用者連自己的isAdmin都不可編輯。
那麼,要求是controller能自動判別這種東西,在同一個edit的function下搞定這兩者的差異。
希望是給予設定,就能做到判斷,而不是用程式碼去寫(例如另外開一個叫做admin的controller之類的,或是在一堆controller裡面寫一堆判斷式)。
題外話,我看過有系統切四個domain,就為了處理這種權限問題。因為總共有四個層級的使用者(一般使用者、管理階層、子控制系統、中央控制系統)。

9. rails 的 life cycle
好像沒有聽到有教學在講這個的
但是我想知道這個東西