gpt4 book ai didi

ruby-on-rails - :default_url in Paperclip的动态使用

转载 作者:行者123 更新时间:2023-12-04 01:20:29 25 4
gpt4 key购买 nike

我正在尝试配置 Paperclip 以根据实例的类别属性提供不同的缺失图像。对象的每个类别都有自己的缺失图像。

这是我的第一次:

编辑以添加完整模型:

class Service < ActiveRecord::Base

attr_accessible :logo, :logo_file_name, :logo_content_type, :logo_file_size, :logo_updated_at

belongs_to :category, :counter_cache => true

has_attached_file :logo,
:path => "/:id-:style-:filename",
:url => ":s3_eu_url",
:default_url => "/logos/:style/#{self.category.name]}.png",
:styles => { :large => "600x400>",
:medium => "300x200>",
:small => "100x75>",
:thumb => "60x42>" }
end

class Category < ActiveRecord::Base
attr_accessible nil

has_many :services
end

在我看来, image_tag service.logo.url(:thumb)输出:
undefined method `category' for #<Class:0x0000010a731620>

有任何想法吗?

编辑2:

一个有效的 default_url 是 :default_url => "/logos/:style/missing.png",

解决方案:

请参阅下面我自己的答案。

最佳答案

我找到了一个解决方案,关注 this gist和这个其他 question in stackoverflow .

我的工作解决方案:

Class Service

has_attached_file :logo,
:path => "/:id-:style-:filename",
:url => ":s3_eu_url",
:default_url => :set_default_url_on_category,
:styles => { :large => "600x400>",
:medium => "300x200>",
:small => "100x75>",
:thumb => "60x42>" }

private

def set_default_url_on_category
"/logos/:style/#{category.name}.png"
end
end

和一个初始值设定项 paperclip_default_url_fix.rb
module Paperclip
module Interpolations
def self.interpolate(pattern, *args)
pattern = args.first.instance.send(pattern) if pattern.kind_of? Symbol

all.reverse.inject(pattern.dup) do |result, tag|
result.gsub(/:#{tag}/) do |match|
send(tag, *args)
end
end
end
end
end

关于ruby-on-rails - :default_url in Paperclip的动态使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7784224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com