默认情况下,我仅在我的测试环境中配置了以下内容。 (其他层使用 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 路由助手中一样。因此,如果您在网站上显示图像。使用
path
引用它因为它将与您当前的 url 和域相关。如果您想通过 api 将其发送到 3rd 方应用程序,请将其添加到您的应用程序或其他类似方案的出站电子邮件中,您应该使用
url
方法。我想这与您的测试和测试环境相同。我希望这能消除你的困惑。
关于ruby-on-rails - 回形针中 `:path` 和 `:url` 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167905/