Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails曲别针自定义文件路径_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails曲别针自定义文件路径

Ruby on rails Rails曲别针自定义文件路径,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,好的,我有这个模型 class Asset < ActiveRecord::Base attr_accessible :asset_file_name, :lesson_id, :attachment has_attached_file :attachment, :url => "/attachments/:id/:basename.:extension", :path => ":rails_root/public/attachments/:id/:b

好的,我有这个模型

class Asset < ActiveRecord::Base
  attr_accessible :asset_file_name, :lesson_id, :attachment

  has_attached_file :attachment,
    :url => "/attachments/:id/:basename.:extension",
    :path => ":rails_root/public/attachments/:id/:basename.:extension"

  validates_presence_of :asset_file_name
  validates_attachment_presence :attachment
end
class资产“/attachments/:id/:basename.:extension”,
:path=>“:rails\u root/public/attachments/:id/:basename.:extension”
验证是否存在:资产\u文件\u名称
验证附件是否存在:附件
结束
(还有一个
课程的模型

我想将附件保存到
/attachments/:lesson\u id/:basename.:extension

这不是资产的
:id
,而是:lesson\u id。当我这样做时,目录实际上只是命名为
:lesson\u id
。有人知道如何获得实际的
课程id
?我还尝试了
@asset.lesson\u id

您必须在回形针中添加自定义插值器。 这最好在初始化器中完成,或者在与模型解耦的地方完成

Paperclip.interpolates('lesson_id') do |attachment, style|
  attachment.instance.lesson_id
end
之后,您的
:lesson\u id
将成为实际的
对象。lesson\u id