Ruby on rails 使用嵌套路径的Rails
我有以下资料: 这将输出:Ruby on rails 使用嵌套路径的Rails,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有以下资料: 这将输出:/projects/70/attachments/25 这将输出:/attachments/25/original.jpg?1291407855 我想要的是:/projects/70/attachments/25?original.jpg?1291407855 我试过这个: 但这是错误吗?有没有办法让上述工作顺利进行 谢谢 使用下载url方法更新 class Attachment < ActiveRecord::Base def download_url(
/projects/70/attachments/25
这将输出:/attachments/25/original.jpg?1291407855
我想要的是:/projects/70/attachments/25?original.jpg?1291407855
我试过这个:
但这是错误吗?有没有办法让上述工作顺利进行
谢谢
使用下载url方法更新
class Attachment < ActiveRecord::Base
def download_url(style = nil, include_updated_timestamp = true)
url = Paperclip::Interpolations.interpolate('/:class/:id/:style.:extension', attachment, style || attachment.default_style)
include_updated_timestamp && attachment.updated_at ? [url, attachment.updated_at].compact.join(url.include?("?") ? "&" : "?") : url
end
Rake路由:
resources :projects do
# Download Attachment
get "attachments/:id/:style.:format" => "attachments#download", :as => :attachment
end
resources :attachments do
collection do
get 'download', :as => :download
end
end
project_attachment GET /projects/:project_id/attachments/:id/:style.:format {:action=>"download", :controller=>"attachments"}
您可以通过以下方式检查所有可用路径:
rake routes
好的:当你使用这个。。。 url=回形针::插值。插值('/:class/:id/:style.:extension',attachment,style | | attachment.default_style)
”/:class/:id/:style.:extension“
部分是创建错误URL的原因:/attachments/25/original.jpg?1291407855
我不确定将“projects/project_id”部分放入url的最佳方式,但您需要执行以下操作:
class Attachment < ActiveRecord::Base
def download_url(style = nil, include_updated_timestamp = true)
project_id = self.project.id.to_s
attachment_url = Paperclip::Interpolations.interpolate('/:class/:id/:style.:extension', attachment, style || attachment.default_style)
include_updated_timestamp && attachment.updated_at ? [url, attachment.updated_at].compact.join(url.include?("?") ? "&" : "?") : url
url = 'projects/' + project_id + attachment_url
end
类附件
也许有一种更优雅的方法可以做到这一点,但我认为这应该让你走上正确的轨道。希望有帮助 这里没有足够的细节。下载url是您在模型中定义的方法,还是使用插件?问题似乎在于您的路由,无论触发什么“下载url”,都没有意识到附件是嵌套的。也许如果你再多描述一下,我们可以帮你:)@Andrew,很抱歉。我正在使用下载url方法进行更新。。谢谢你的帮助。这能给你你所需要的一切吗?谢谢,但我认为这与使用路线上的方法更相关。