Rails - 设置自定义回形针网址的路径

时间:2012-10-17 06:16:12

标签: ruby-on-rails-3 routes paperclip

我已设置自定义回形针路径和网址,如下所示:

path: ":rails_root/storage/:rails_env/photos/:id/:style/:basename.:extension",
url: "/storage/:rails_env/photos/:id/:style/:basename.:extension"

但是现在我需要弄清楚如何创建一个路线,以便我可以使用这个带有url的附件(例如)访问模型的每个实例的每张照片:

http://0.0.0.0:3000/storage/development/photos/1/original/_MG_7918.JPG

到目前为止我尝试的所有内容都以相同的错误结束:

No route matches [GET] "/storage/development/photos/1/original/_MG_7918.JPG"

有人可以帮助我了解我的路由需要采取什么结构才能访问此目录结构中的文件?

1 个答案:

答案 0 :(得分:1)

您可以为附件创建自定义控制器。您需要创建一个控制器方法和路线:

# config/routes.rb
match "/storage/*path" => "attachments#show"

#app/controllers/attachments_controller.rb
class AttachmentsController
  def show
    # ...
  end
end

您可以查看this answer,注意我的评论以提高效率。

另一个解决方案是创建一个从public目录到storage目录的符号链接。