2015-12-14 181 views
5

我有一個每週生成器拉鍊一些文件。有些是在app/assets/images/xxx.xxx一些通過回形針載和public/system/env...Rails - 如何獲取資源的文件路徑(不是url路徑)?

的文件路徑我有app後開始,不/images/public資產。

我會得到類似於/assets/some.png/system/production/xyz/some.jpg的東西,這些將作爲URL路徑正常提供,但我希望將它們收集到一個文件中。

如何獲取資產的文件路徑?


我覺得這是一個更簡單的方法來解釋它。

鑑於資產URI字符串,我如何找到並獲取資產的文件路徑?

資產URL路徑/assets/logo.png可能是其中的一個文件:

public/logo.png 
public/assets/logo.png 
app/assets/images/logo.png 
+0

如果我正確理解你在這裏想要問什麼......你想要定義一個資產文件路徑,即'app /「文件名」/xxx.xxx。「file-type」' – CallmeSurge

+0

@CallmeSurge我想要一個文件路徑那個ruby'''File'''可以打開。 Asset url路徑不需要public /或assets/images/logo.png的'''/ images'''部分。但我想用服務器上的Ruby腳本獲取文件,而不是通過HTTP –

回答

0

Rails.root可讓您將項目的根的絕對路徑。 (它返回一個Pathname對象)

然後你可以做這樣的事情:

Rails.root.join("some_dir1", "some_dir2", "some_file") 

因此得到一個文件路徑中公共/資產

Rails.root.join("public", "assets", "file.jpg") 
+1

這不能回答這個問題。資產url路徑不僅僅是沒有項目根目錄的文件路徑。資產url路徑'''/ assets/logo.png'''可以是'''public/logo.png'','''public/assets/logo.png''','''app/assets /圖像/ logo.png'''。這些都是不同的文件路徑,只給出字符串'''/assets/logo.png''',那麼'''Rails.root'''不會找到資產並返回它的路徑。 –