是否有可能从应用程序重命名目录?
我是通过FTP上传文件(因为它是很多文件而且很重要),并使用主题{model.title} - {model.place}命名目录。当我在应用程序中更改主题标题或位置时,目录名称现在是错误的,我必须通过连接到FTP重命名它。我想在我的应用程序中点击“编辑”时自动重命名这个目录。
使用carrierwave在rails 3.1.3中获得了应用。
答案 0 :(得分:2)
您可以使用FileUtils
在Ruby中重命名目录require 'fileutils'
FileUtils.mv old_directory_name, new_directory_name
您可以使用模型回调实现此目的:
class MyModel < ActiveRecord::Base
# Callback triggered by a changed place or title
before_save :change_directory_names
private
# Method that changes directory names
def change_directory_name
if self.title_changed?
title = self.title.changes.flatten.drop(1)
# Code here to change the directory name
# Old title: title.first
# New title: title.last
elsif self.place_changed?
place = self.place.changes.flatten.drop(1)
# Code here to change the directory name
# Old place: place.first
# New place: place.last
end
end
答案 1 :(得分:1)
我认为用不会改变的东西命名你的目录会更有意义。为什么不直接使用Model.id?