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方法进行更新。。谢谢你的帮助。这能给你你所需要的一切吗?谢谢,但我认为这与使用路线上的方法更相关。