未应用文件的更新版本
Updated version of file is not applied
我有文件,应该在更新实例属性后更新
它看起来像这样:
controller.rb
def update
if UpdateNewspaperDesign.new(newspaper_design, newspaper_design_params).call
#render response
end
end
和
class UpdateNewspaperDesign
def initialize(newspaper_design, params)
@newspaper_design = newspaper_design
@params = params
end
def call
newspaper_design.assign_attributes(params)
File.open(File.join(Rails.root, 'tmp', "newspaper-design-#{Time.now.to_i}.css"), 'w') do |file|
file.write(css(newspaper_design))
newspaper_design.css = file
end
newspaper_design.save
end
private
attr_reader :newspaper_design, :params
def css(newspaper_design)
NewspaperDesignCssCompiler.new(newspaper_design).call
end
end
然后我在布局中包含 css
= stylesheet_link_tag newspaper.design.css_url, media: 'all'
正如我在控制台中看到的那样:css url 已更新,但插入到布局中的 url 未更新。
将文件替换为临时文件
- 这就是我修复它的方法
我有文件,应该在更新实例属性后更新 它看起来像这样:
controller.rb
def update
if UpdateNewspaperDesign.new(newspaper_design, newspaper_design_params).call
#render response
end
end
和
class UpdateNewspaperDesign
def initialize(newspaper_design, params)
@newspaper_design = newspaper_design
@params = params
end
def call
newspaper_design.assign_attributes(params)
File.open(File.join(Rails.root, 'tmp', "newspaper-design-#{Time.now.to_i}.css"), 'w') do |file|
file.write(css(newspaper_design))
newspaper_design.css = file
end
newspaper_design.save
end
private
attr_reader :newspaper_design, :params
def css(newspaper_design)
NewspaperDesignCssCompiler.new(newspaper_design).call
end
end
然后我在布局中包含 css
= stylesheet_link_tag newspaper.design.css_url, media: 'all'
正如我在控制台中看到的那样:css url 已更新,但插入到布局中的 url 未更新。
将文件替换为临时文件 - 这就是我修复它的方法