我有了像companies (id, serial...), user (id, serial, company_id...)
,其中序列是一個隨機生成的字符5-20長字符串,而每個表獨特的表在Rails(4.2.6)應用程序。我想實現是有路線像/companies/:serial
和/users/:serial
...導軌 - 壓倒一切的名稱路由參數 - GLOBALLY
我看了documentation,並且可以做routes.rb
如下:
resources :companies, param: :serial
resources :users, param: :serial
現在,這不是太乾.. 。有沒有辦法在全球範圍內做到這一點?我知道我可以在一行(resources :companies, :users, param: :serial
)中有這個,但是在其他名稱空間中我還有其他表,我也希望將其應用於其他名稱空間。
我想到的另一件事是將序列作爲主鍵,但我更喜歡自動遞增的整數,並且不希望使用具有10-20個字符長值的列user.company_serial
來拋棄我的數據庫...
我試圖做一個範圍與周圍我的資源param: :serial
:
scope param: :serial do
resources :companies
...
end
像path_names
(文檔中讀取here),但並沒有取得預期的效果,反而增加params[:param]
與符號值:serial
由於某些原因,我不太明白。
我也知道方法to_param
的存在,但如果我理解的很好,我應該在模型中使用它,所以我將不得不編寫與我擁有的許多模型相同的代碼。
在每張桌子上顯式化並不一定是件壞事。偶爾DRY在Ruby中有點太過分了(閱讀回形針源代碼)。我認爲每個表格都明確地定義了它在本地空間中的串行資源。儘管如此,將前兩行合併爲一個似乎很實用。 – Pyrce
@Pyrce,你是對的,但我想申請的規則來進行整個應用程序,我覺得如果一個sheperd開始歷數羊像「sheep1是白色的,sheep2是白色的,sheep3是白色的......」所有400他不是說所有的羊都是白色的......畢竟,這就是我要做的事情,如果沒有其他的辦法 – Misu