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 好像沒有聽到有教學在講這個的 但是我想知道這個東西 |
Direct link: https://paste.plurk.com/show/Wax9p1UOfubsNs9Pa3yk