Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 3 多态关联的回形针自定义路径和url_Ruby On Rails 3_Paperclip - Fatal编程技术网

Ruby on rails 3 多态关联的回形针自定义路径和url

Ruby on rails 3 多态关联的回形针自定义路径和url,ruby-on-rails-3,paperclip,Ruby On Rails 3,Paperclip,我使用依恋模型作为多态关联。如何根据关联更改路径和url参数 附着模型 class Attachment < ActiveRecord::Base belongs_to :user belongs_to :attachable, :polymorphic => true has_attached_file :attachment, :url => "/attachments/:id/:basename.:extension

我使用依恋模型作为多态关联。如何根据关联更改路径和url参数

附着模型

class Attachment < ActiveRecord::Base
  belongs_to :user
  belongs_to :attachable, :polymorphic => true

  has_attached_file :attachment,
                    :url  => "/attachments/:id/:basename.:extension",
                    :path => ":rails_root/public/attachments/:id/:basename.:extension",
                    :default_url => "/attachments/original/no-file.txt"
end
但是我需要基于关联来保存文件,比如,如何将参数传递给“path”attachable_type'定义上载文件所属的关联

/attachments/project/
/attachments/client/
你可以用。插值允许您调用方法来确定路径部分的值

class Attachment < ActiveRecord::Base
  belongs_to :user
  belongs_to :attachable, :polymorphic => true

  Paperclip.interpolates :attached_to do |attachment, style|
    attachment.instance.attachable.class.to_s.downcase
  end

  has_attached_file :attachment,
                    :url  => "/attachments/:id/:basename.:extension",
                    :path => ":rails_root/public/attachments/:attached_to/:id/:basename.:extension",
                    :default_url => "/attachments/original/no-file.txt"
end
类附件true
回形针.内插:附加|附加,样式|
attachment.instance.attachable.class.to_.downcase
结束
已附加文件:附件,
:url=>“/attachments/:id/:basename.:extension”,
:path=>“:rails\u root/public/attachments/:attached\u to/:id/:basename.:extension”,
:default_url=>“/attachments/original/no file.txt”
结束
您可以使用。插值允许您调用方法来确定路径部分的值

class Attachment < ActiveRecord::Base
  belongs_to :user
  belongs_to :attachable, :polymorphic => true

  Paperclip.interpolates :attached_to do |attachment, style|
    attachment.instance.attachable.class.to_s.downcase
  end

  has_attached_file :attachment,
                    :url  => "/attachments/:id/:basename.:extension",
                    :path => ":rails_root/public/attachments/:attached_to/:id/:basename.:extension",
                    :default_url => "/attachments/original/no-file.txt"
end
类附件true
回形针.内插:附加|附加,样式|
attachment.instance.attachable.class.to_.downcase
结束
已附加文件:附件,
:url=>“/attachments/:id/:basename.:extension”,
:path=>“:rails\u root/public/attachments/:attached\u to/:id/:basename.:extension”,
:default_url=>“/attachments/original/no file.txt”
结束
/attachments/project/
/attachments/client/
class Attachment < ActiveRecord::Base
  belongs_to :user
  belongs_to :attachable, :polymorphic => true

  Paperclip.interpolates :attached_to do |attachment, style|
    attachment.instance.attachable.class.to_s.downcase
  end

  has_attached_file :attachment,
                    :url  => "/attachments/:id/:basename.:extension",
                    :path => ":rails_root/public/attachments/:attached_to/:id/:basename.:extension",
                    :default_url => "/attachments/original/no-file.txt"
end
has_attached_file :attachment, :path => ":rails_root/public/attachments/#{lambda { |a| a.instance.images_path? ? 'project' : 'client' }}/:id/:basename.:extension"



def images_path?
    if your pretty condition  
      #return true
    else
      #return false 
    end
  end