2013-07-08 40 views
2

我開發了一款當前使用大量javascript的rails應用程序。
這個javascript的大部分代碼是我自己生成的代碼,通常只在少數地方使用(全部由認證用戶使用)。 登錄後的資產管道

基本上,我想做些什麼,是能夠只允許一個用戶訪問,如果他們登錄和授權(我用的設計和康康舞身份驗證和授權),這些js文件。
我仍然希望文件被預編譯(連接和最小化)與資產管道相同,但是這些文件應該存儲在公衆無法訪問的地方,並且只有在用戶有權訪問它們。

我曾嘗試和失敗的搜索,但覺得我必須缺少簡單的東西,因爲這是在很多Rails應用的切切實實的普遍做法。
因此,我希望得到一些幫助,找到有關此問題的信息,因爲我無法手動編譯js文件,並將其添加到用戶有權訪問的視圖中。

任何幫助,將不勝感激!

編輯:

要澄清我在問什麼: 我想試圖找到類似資產的管道將連接起來的東西和JS文件減少是正常的。

然後,當用戶嘗試訪問此js文件時:
1.如果用戶已登錄,則js文件將以正常方式提供給用戶。
2.如果用戶沒有登錄,用戶會收到一條錯誤消息(或401未經授權,或404未找到或類似),這意味着未經授權的用戶無法訪問該腳本。

基本上,當您嘗試訪問您無權查看的json文件時會發生類似的情況。

+0

你有沒有找到解決這個問題的辦法?我在看同樣的問題,並沒有找到一個好的解決方案。 – WillP

回答

0

您可以簡單地爲登錄用戶使用不同的佈局或渲染一個部分,包括您的預編譯的JavaScript。

例如在application.html.haml

- if current_user. 
    = javascript_include_tag "your_special_user_js" 

我不知道,如果這個回答你的問題,但它是我的理解,你正在努力實現這一行爲。

+0

謝謝。這實際上只會在用戶登錄時加載js。 但是我也希望如果有任何未登錄的用戶試圖訪問js文件'/assets/your_special_user_js.js',它會給他們'訪問被拒絕'消息或類似的東西,除非他們已經登錄。 – dbesteva