我有一个博客模型,其内容将存储在文件中,其余内容将存储在表中。
我的解决方案如下
我用 getter/setter 方法创建了一个虚拟属性。
def content
File.read(file_path)
end
def content=(html)
File.open(file_path, "w") do |file|
file.write(html)
end
end
但是在这里我有一个问题,我只想在记录有效的情况下将 html 内容存储到文件中,但是当我在控制器中说如下内容时
Blog.new(:content => html,:title => "Title".......)
在设置其他属性之前首先调用我的设置器。由于其他属性已通过存在验证,因此真实记录将无法保存,但我的文件仍将被存储。
所以现在我想要一个解决方案,只有当记录有效并存储时才会创建文件。