ruby-on-rails - 回形针中 `:path` 和 `:url` 之间的区别

标签 ruby-on-rails paperclip

默认情况下,我仅在我的测试环境中配置了以下内容。 (其他层使用 Amazon S3 作为存储)

Paperclip::Attachment.default_options[:path] =
  ":rails_root/public/system/:rails_env/:class/:attachment/:id_partition/:filename"
Paperclip::Attachment.default_options[:url] =
  "/system/:rails_env/:class/:attachment/:id_partition/:filename"

我在理解 :path 之间的区别时遇到了一些麻烦。和 :url此处的选项以及何时使用哪个。一些基本的谷歌搜索告诉我 url是普遍可访问的路径,而 path是本地存储路径。

有什么理由让它们真的不同,我应该费心在测试环境中保持它们不同吗?我的问题是我调用 <my_attachment>.url在我的规范测试中,但没有找到它,因为它实际上存储在 path 定义的位置

谢谢!

最佳答案

path返回相对位置。例如:

/images/example.jpg


url另一方面,返回绝对位置,就像在 Rails 路由助手中一样。

http://www.example.com/images/example.jpg



因此,如果您在网站上显示图像。使用 path 引用它因为它将与您当前的 url 和域相关。

如果您想通过 api 将其发送到 3rd 方应用程序,请将其添加到您的应用程序或其他类似方案的出站电子邮件中,您应该使用 url方法。我想这与您的测试和测试环境相同。我希望这能消除你的困惑。

关于ruby-on-rails - 回形针中 `:path` 和 `:url` 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167905/

相关文章:

ruby-on-rails - 不允许的参数 : nested forms

javascript - Bootstrap 列没有并排出现并且宽度都相同

ruby-on-rails - 部署 rails 应用程序。 JQuery-UI 错误

ruby-on-rails - Rails 服务器在 emacs shell 中非常慢

ruby-on-rails-3 - 将图像存储在本地以供开发s3用于生产Rails回形针

ruby-on-rails-3 - 如何验证回形针的pdf,word,excel和纯文本的文件内容类型?

ruby-on-rails - 我将如何向 Rails 应用程序添加一个简单的菜单? (如何使用yield :menu)

ruby - Rails_admin 中 Paperclip 附件的下载链接

ruby-on-rails - 回形针,CKEditor validates_attachment_content_type 错误

ruby-on-rails - 回形针 + RSpec : content_type validation