2012-05-09 58 views
1

我正在使用rails-translate-routes gem來只翻譯「前」路線。
我正在使用carrierwave在我的管理員中上傳一些文件。這裏有一個上傳者:rails-translate-routes gem:是否可以翻譯路線但保留(一些)原始路線?

class CheatsheetUploader < CarrierWave::Uploader::Base 
    [...] 
    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
    [...] 
end 

正如你所看到的,路徑使用模型的名稱和字段的名稱。

當我試圖讓該文件:

link_to "my file", download.cheatsheet.url 

的路徑是默認的:

http://localhost:3000/uploads/download/cheatsheet/1/a_really_nice_file.pdf 

和Rails給我一個很好的路由錯誤:

No route matches [GET] "/uploads/download/cheatsheet/1/a_really_nice_file.pdf" 

任何處理這個問題的方法?

回答

0

您可以在致電ActionDispatch::Routing::Translator.translate_from_file時通過keep_untranslated_routes: true

例如:

ActionDispatch::Routing::Translator.translate_from_file(
    'config/locales/routes.yml', 
    no_prefixes: true, 
    keep_untranslated_routes: true)